[解決済み] MySQL - なぜすべてのフィールドにインデックスを作らないのか?
2022-08-14 22:08:17
質問
最近、インデックスのすばらしさを知り、パフォーマンスが劇的に改善されました。しかし、学んだことすべてをもってしても、この質問に対する答えを見つけることができないようです。
インデックスは素晴らしいものですが、なぜ誰かがすべてのフィールドにインデックスを付けて、テーブルを信じられないほど速くすることができなかったのでしょうか?これをしない正当な理由があると思いますが、30 フィールドのテーブルで 3 フィールドはどうでしょうか。30フィールドに10フィールドはどうでしょう?どこで線を引くべきでしょうか、そしてその理由は?
どのように解決するのですか?
インデックスはメモリ (RAM) のスペースを占有します。インデックスが多すぎたり大きすぎたりすると、DB はディスクとの間でインデックスをスワップする必要が出てきます。 また、挿入と削除の時間も長くなります (挿入/削除/更新されるデータごとに各インデックスを更新する必要があります)。
無限のメモリがあるわけではありません。すべてのインデックスがRAMに収まるようにすること=良いことです。
無限の時間があるわけではありません。インデックスが必要な列だけにインデックスを付けることで、挿入・削除・更新のパフォーマンスヒットを最小にすることができます。
関連
-
MySQLのデータバックアップにmysqldumpを使用する方法
-
sql エラーを解決する オペランドには1つの列が含まれている必要があります。
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] クラスター化インデックスと非クラスター化インデックスの実際の意味は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLデータベースでvarchar型の数値の大きさを比較する方法
-
MySQLとOracleの一括挿入SQLの汎用的な記述例
-
MySQL サービスとデータベース管理
-
MySql認証ベースのvsftpd仮想ユーザー
-
MySQLの一般的な分割ライブラリおよび分割テーブルスキームの概要
-
mysql がエラーを報告します。不明な文字セットです。'utf8mb4'
-
Mysqlの使用中に発生したエラーの一部
-
[解決済み] データベースのインデックス作成はどのように行われるのですか?[クローズド]
-
[解決済み] MySQL で特定のカラム名を持つすべてのテーブルを見つけるにはどうすればよいですか?
-
[解決済み] Oracleの外部キーにインデックスを作成する必要がありますか?