1

私はこのようなテーブルを持っています:

CREATE TABLE `item` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255),
`my_number` int(10) unsigned default NULL
);

数十万のアイテムがあり、私は通常「my_number」で注文します。

'my_number'にインデックスを追加すると、このフィールドで並べ替えたときにクエリのパフォーマンスが向上しますか?

私はMySQLを使用しています。テーブルはInnoDBです。

4

1 に答える 1

6

私は答えを知っていますが、それは問題ではありません。潜在的なデータベース最適化のすべての場合に行うべきことは、インデックスを追加してテストすることです。そして、それは、影響を受けるすべてのクエリ、挿入、および更新をテストして、他の場所でのパフォーマンスの低下を上回るパフォーマンスの向上があることを確認することを意味します。

代替手段が自分で収集できる具体的なデータである場合は、私の知識や他の人の知識を信頼するべきではありません。測定、推測しないでください!

ちなみに、答えは「DBMSが本当に脳死していない限り、そうすべきだ」ということです。一般に、インデックスを追加すると、選択の速度は上がりますが、挿入と更新は遅くなります。しかし、私は「一般的に」という意味です-常にそうであるとは限りません。優れたDBAは、DBMSのパフォーマンスを継続的に検査し、必要に応じて調整します。データベースは設定され忘れられたオブジェクトではありません、それらは世話をされて育てられる必要があります:-)

于 2009-08-23T08:15:48.293 に答える