私はLinuxのVMとMysql 5.7.19を持っています。私はlong_query_time = 5
を設定しているので、それはインデックスを使用しないため、クエリがログに記録されているようだ遅いクエリMysql 5.7 varcharカラムによる注文
# Time: 2017-08-05T11:10:36.881359Z
# [email protected]: root[root] @ localhost [127.0.0.1] Id: 2070
# Query_time: 0.000381 Lock_time: 0.000145 Rows_sent: 1 Rows_examined: 35
SET timestamp=1501931436;
SELECT * FROM `cliente` order by denominazione;
:スロークエリのログ記録とlog-queries-not-using-indexes
私はこのクエリを気づきました。私はしましたクエリをExplaning:
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE cliente NULL ALL NULL NULL NULL NULL 35 100.00 Using filesort
これは私のテーブルのDDLです:
CREATE TABLE `cliente` (
`id` bigint(20) NOT NULL,
`creatoDa` varchar(255) DEFAULT NULL,
`dataInserimento` datetime DEFAULT NULL,
`dataUltimaModifica` datetime DEFAULT NULL,
`modificatoDa` varchar(255) DEFAULT NULL,
`ENTITY_UID` varchar(36) NOT NULL,
`version` int(11) DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT '1',
`denominazione` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
`note` longtext,
`password` varchar(255) NOT NULL,
`username` varchar(255) NOT NULL,
`dataUltimoPing` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `cliente`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `UK_75j8vo25r1ws35vccamep965h` (`ENTITY_UID`),
ADD UNIQUE KEY `UK_sgwkt4eif8lb1e5miakwnu7q9` (`username`),
ADD KEY `idx_denominazione` (`denominazione`),
ADD KEY `idx_attivo` (`attivo`)
MySQLは、私は、インデックス< 768上をしたことを考慮すると、ソート結果にインデックスを使用していない理由を私は思ったんだけどdenominazione(varchar(255))フィールド。
テーブルにはどのようにmnayレコードがありますか?オプティマイザは常にインデックスを使用するとは限りません。 –
私はちょうど35のレコードを持っています – drenda