0

MySQLデータベースに保存されている名前の長いリスト(約10000)があるとしましょう。それらを複数のテーブルに分割することは役に立ちますか?名前の最初の文字で?(テーブルA、テーブルBなど)クエリを高速化しますか?

ありがとう

4

4 に答える 4

3

10kレコードは、まともなハードウェア上の最新のRDBMSでは非常に少ない数です。詳細を示さない限り、テーブルを分割することは避けます。メンテナンスと開発が不必要に複雑になる一方で、パフォーマンス上のメリットはありません。

于 2012-05-17T19:08:43.383 に答える
2

私はそうは思わない。10000はそれほど多くありません。5ミル。別の話です。インデックスを上手に使い、一緒にしましょう。

于 2012-05-17T19:09:54.047 に答える
2

10kレコードはそれほど多くないことに同意します。検索を高速化するために、必ずインデックスを使用してください。クエリを記述し、インデックスを使用する場合は、Explainの使用方法を学びます。

また、1つのページに10,000の名前をすべてリストする必要がない限り、クエリを常に制限することもお勧めします。たとえば、リストを作成し、ページ付けを使用して、一度に100個の名前に表示を制限します。

検索は速くなりますが、最初の文字がない場合に何かを検索するときに、26の異なるテーブルを通過するコードを作成する必要があるとは想像できません。

于 2012-05-17T19:15:58.270 に答える
0

no-テーブルを分割します。同じタイプのデータは1つのテーブルに属します。いくつかのインデックスでパーティション化することができます-私自身の利益のために、列のサブ文字列でのパーティション化を見ていきますが、それは可能であるはずです。

于 2012-05-17T19:09:21.130 に答える