MySQLデータベースに保存されている名前の長いリスト(約10000)があるとしましょう。それらを複数のテーブルに分割することは役に立ちますか?名前の最初の文字で?(テーブルA、テーブルBなど)クエリを高速化しますか?
ありがとう
MySQLデータベースに保存されている名前の長いリスト(約10000)があるとしましょう。それらを複数のテーブルに分割することは役に立ちますか?名前の最初の文字で?(テーブルA、テーブルBなど)クエリを高速化しますか?
ありがとう
10kレコードは、まともなハードウェア上の最新のRDBMSでは非常に少ない数です。詳細を示さない限り、テーブルを分割することは避けます。メンテナンスと開発が不必要に複雑になる一方で、パフォーマンス上のメリットはありません。
私はそうは思わない。10000はそれほど多くありません。5ミル。別の話です。インデックスを上手に使い、一緒にしましょう。
10kレコードはそれほど多くないことに同意します。検索を高速化するために、必ずインデックスを使用してください。クエリを記述し、インデックスを使用する場合は、Explainの使用方法を学びます。
また、1つのページに10,000の名前をすべてリストする必要がない限り、クエリを常に制限することもお勧めします。たとえば、リストを作成し、ページ付けを使用して、一度に100個の名前に表示を制限します。
検索は速くなりますが、最初の文字がない場合に何かを検索するときに、26の異なるテーブルを通過するコードを作成する必要があるとは想像できません。
no-テーブルを分割します。同じタイプのデータは1つのテーブルに属します。いくつかのインデックスでパーティション化することができます-私自身の利益のために、列のサブ文字列でのパーティション化を見ていきますが、それは可能であるはずです。