0

次のMySQLテーブルがあります:

CREATE TABLE `my_data` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `tstamp` int(10) unsigned NOT NULL DEFAULT '0',
  `name` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

SELECT次のクエリのみを最適化したい:

SELECT `id`, `name` FROM `my_data` ORDER BY `name` ASC

テーブルのサイズに関係なく、次のインデックスを追加するとパフォーマンスが向上しますか?

CREATE INDEX `idx_name_id` ON `my_data` (`name`,`id`);

クエリはそれEXPLAINを示唆していますが、大規模なデータセットで簡単にテストする方法がありません.

4

2 に答える 2

1

インデックスは、 where句で列を使用する場合、または列が2つのテーブル間のリンクの条件の一部である場合に役立ちます。MySQLDocを参照してください

于 2013-03-14T13:56:27.543 に答える
1

はい、そうです。まだ完全なテーブル スキャンを実行している場合でも、インデックスを使用すると、並べ替え操作が (順序による) 不要になります。

ただし、insert ステートメントと delete ステートメントのオーバーヘッドも増加します。

于 2013-03-14T13:57:42.183 に答える