
indexキーとprimary keyについてですが、違いというのは、NULLが許可されるか、されないかの違いでしょうか?
データベースから検索する際に、indexキーがある方が検索スピードが速いということですが、あるHPに《PRIMARY KEY が宣言されたカラムは自動で Index Key と Unique Key が適応されます》とありました。
ですので、検索スピードを上げるには、PRIMARY KEYを設定すれば、indexキーが設定されたのと同じ事になるのでしょうか?
No.1ベストアンサー
- 回答日時:
単純な違いはというと、Primaryキーは一意性があり重複が許されないものです。
よってそのテーブルの検索キーワードになりますから通常Indexが張られます。Uniqueは一意性を意味します。
なので Primaryキー = Uniqueキー + Indexキー ですね。
検索スピードを上げるためには条件となる項目がPrimaryかIndexであれば早くはなりますが、Primaryはむしろテーブル設計に拠るところが大きくて、一般的に用いられるのはIndexです。
また、条件全ての項目にIndexを張る必要はありません。
条件となる項目にIndexがあり、条件文の書き方(条件文の並び順とか)によっては少ないIndexで済みます。
たくさんIndexを張るとDBが大きくなってしまいますので。
ありがとうございます。
とても詳しく説明していただき、自分なりに多少理解できたと思います。もう少し勉強する必要があるかと思いますが・・・。
本当にありがとうございました。
No.2
- 回答日時:
プライマリの用途としては親テーブルに子テーブルを結合するときの
キーとするためのもの、もしくは特定のレコードを端的に確定させるための
検索キーという認識の方がわかりやすいかもしれませんね。
その用途から一意性を保証するためのuniqueと、検索性をあげるための
indexがついているわけです。
「正規化」について学習すれば理解度が深まるかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- MySQL MYSQL エラー 2 2022/10/18 11:37
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こちらのテーブルにあってこち...
-
DAOで同値更新するとException発生
-
フラグをたてるってどういうこ...
-
SQLの記述方法
-
検索の効率に付いて
-
GBLtest test?
-
Oracleによるリンクテーブルで...
-
sennaの全文検索のクエリについて
-
件数指定での取得
-
ダブリ数字の有無の確認にのマ...
-
直近データ抽出 VS WHERE文
-
フラグってなんですか??
-
複数選択か?単数選択か? テ...
-
教えてください
-
【SQL】他テーブルに含まれる値...
-
エクセルVBA 10分後にエクセル...
-
既存テーブルにカラム追加でサ...
-
Accessの構成をコピーしたい
-
ファイルメーカー Pro7(W...
-
SQLでTableが作れないlol
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1つのSQLで2段階の抽出を行い...
-
limit offset はupdate文には使...
-
【SQL】項目に紐づいている情報...
-
2つフィールドを連結して検索す...
-
SQLで、過去で一番大きい日付の...
-
AccessVBAについて テーブルの...
-
条件を複数与えたい
-
ACCESS サブフォームについて
-
SQLでレコード間の値の交換
-
mysqlのindexとprimary keyにつ...
-
複数の値を1レコードに表示した...
-
SQLのinの使い方
-
こちらのテーブルにあってこち...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
PostgreSQLのtimestamp型で時間...
おすすめ情報