私は、結合中の全テーブルスキャンを防ぐために、私は私の外出先のアプリケーションの外字キーにインデックスを追加する必要があることを知りました。しかし、私は外部キーにインデックスを追加することが何を意味するのか、それがどのように機能するのか、それがパフォーマンスをどのように向上させるのかを正確には分かりません。外部キーのインデックスの追加はどのように機能しますか?
答えて
私はウィキペディアには、どのようなインデックスがあるのかをよく分かりました。参照:http://en.wikipedia.org/wiki/Index_%28database%29
インデックスは、データベースのサイズを増やすことができます。彼らは効果的にデータの注文をキャッシュします。外部キー関係に関してインデックスを作成するときは、テーブルのデフォルトの順序付けをキャッシュします。これにより、テーブル内で検索する必要のあるアイテムのサイズを縮小したり、結合を高速化できます。
この不自然な例考えてみましょう:私は、従業員と呼ばれるテーブル持って
を:
従業員IDを|従業員コード|従業員名
1 | 0003 |リチャード
2 | 0002 | Bob
3 | 0008 |ティム
私は、従業員コードのソートされたリストに参加したい:
これは、あなたがO(N2)の検索の効率を持つインデックスなしを意味します。従業員コードで注文されたテーブルでは、バイナリ検索ツリーによって与えられる検索効率:http://en.wikipedia.org/wiki/Binary_search_algorithmを見ることができます。効果的には、位置を推測し、すべての単一行を検索するのではなく、それを永遠に近づけることによって、0003を見つけることができます。
あなたのデータベースは特定のアルゴリズムを使用していますが、より効率的な検索を行うためには、キーによるデータの順序付けを必要とするアルゴリズムがあります。
データベースのサイズに影響するため、不要になったインデックスも削除することをお勧めします。
他のフィールドのインデックスと変わりません。オプティマイザは、これらの表の特定の行を見つけるのに役立ちます。 FKはしばしば結合フィールドとして使用されるため、これらのケースでは索引作成のための自然な候補となります。
- 1. 外部キーはどのように機能しますか?
- 2. 外部キーとのdjango集約はどのように機能しますか?
- 3. 外部キーの関係をどのように追加しますか?
- 4. インデックスではどのようにインデックスが機能しますか?
- 5. null可能な外部キーの追加。
- 6. データベースの主キーはどのように機能しますか?
- 7. 外部キーの関係を追加しようとすると、mysqlの外部キーが制約されます
- 8. MongoDBインデックスはどのように機能しますか?
- 9. WebSocketキーはどのように機能しますか?
- 10. 外部IDでupsertはどのように機能しますか?
- 11. PostgreSQLの機能外部キーはここ
- 12. 外部キーを追加するすべての列にインデックスを付けます
- 13. 外部キーを追加するには?
- 14. 部門はMIXでどのように機能しますか?
- 15. データベースに外部キーを追加する - アプリケーションをどのように変更しますか?
- 16. Sequelize:どのように外部キー
- 17. gccはlinux ELFにどのような機能を追加しますか?
- 18. どのように挿入し、SELECT文を使用してテーブルの外部キーを追加するには?
- 19. DB外部キーのJTableにcomboBoxを追加します
- 20. MySQL Workbenchの外部キーが機能しませんか?
- 21. Djangoの外部キー後方関係は機能しません
- 22. EFコアのIDユーザーに外部キーを追加するにはどうすればよいですか?
- 23. 既存のSQLiteテーブルに外部キーを追加するにはどうすればよいですか?
- 24. 既存のテーブルに外部キーを追加するにはどうすればよいですか?
- 25. Plone 3にどのようにブログ機能を追加しますか?
- 26. どのようにコードを拡張機能に追加しますか?
- 27. レールモデルに外部キーを追加する
- 28. テーブルに外部キーを追加する
- 29. テーブルに外部キーを追加する
- 30. データベースに外部キーを追加する