質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

2回答

9133閲覧

主キーとインデックスの違い

aaaaaaaa

総合スコア501

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

1クリップ

投稿2017/07/21 10:34

編集2017/07/21 10:35

主キーは、レコードのだぶりを許さないカラムに指定します。主キーは、nullが入力できず一意キーは、nullの入力ができます。
ここによれば、主キーは、会員番号などの何かない限り変更が行われないものに、一意キーが、住所など変更される可能性のあるものに使うと書いてあります。
何となく主キーと一意キーの違いが分かるような気がしたのですが、これらのキーとインデックスの違いは、何なのでしょうか。

インデックスに関しては、書籍やネットで書籍の後ろのほうにある索引のようなもの、使えばwhereなどの処理が速くなるなどのように認識しております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

キーは制約、インデックスは索引です。別の概念です。

表に対する書き込み・変更・削除を確定するときに確認されるのが制約で、表を読み込むときに利用すると速くなる場合があるのが索引です。

投稿2017/07/21 10:45

SugiTK

総合スコア495

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

主キーは、レコードのだぶりを許さないカラムに指定します

⇒間違ってはいないですし、そういう設計も存在しますが、
最近の主流は 『確実に 識別する(identification) ための 主たる制約』のカラムを追加し、
変更しないカラムを主キーとする場合が多いです。

これらのキーとインデックスの違いは、何なのでしょうか。


主キー:NOT NULL、運用中の変更は(基本的に)しない、該当テーブルでのユニークキー
ユニークキー(一意キー):NULL可(※)、運用中の変更もOK、該当テーブルでの一意キー
インデックス:NULL可(※)、運用中の変更もOK、該当テーブル内で同一内容の複数レコード可
※データベースの種類によって、制限がかかったり、性能が出ない場合もあるので、
これらのキーにはNOT NULLをした方が無難です。

インデックスに関しては、書籍やネットで書籍の後ろのほうにある索引のようなもの、使えばwhereなどの処理が速くなるなどのように認識

⇒問題ないです。
主キーもユニークキーもこのインデックスのように、whereなどの処理が速くなります。

投稿2017/07/21 15:15

tomari_perform

総合スコア760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomari_perform

2017/07/22 14:41

補足) 以下、最近の流行な部分もありますが、 具体的な内容として、以下のような傾向もあります。 主キー:画面には出てこない裏で処理されるID ユニークキー:画面に表示される項目で、一意にしたいもの(例:ログインID) インデックス:別テーブルで主キーとなっている項目、ソートに使う項目 etc...
aaaaaaaa

2017/07/26 10:33

詳細なご回答ありがとうございます。大変勉強になりました。 重ね重ね申し訳ありませんが、質問させてください。 >>最近の主流は 『確実に 識別する(identification) ための 主たる制約』のカラムを追加し、 変更しないカラムを主キーとする場合が多いです。 というのは、捕捉にあります"主キー:画面には出てこない裏で処理されるID"と同一のものでしょうか。
tomari_perform

2017/07/26 12:24

はい、同一のものと捉えて頂いて問題ないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問