Bir örtme indeksi daily_ips
COUNT (DISTINCT field1) performansının nasıl artırılacağı ... GROUP BY field2?
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
requests 1 daily_ips 1 exec_date A 16 NULL NULL YES BTREE
requests 1 daily_ips 2 ip_address A 483492 NULL NULL YES BTREE
ile aşağıdaki sorgu
EXPLAIN SELECT COUNT(DISTINCT ip_address) as ip_address, exec_date
FROM requests
GROUP BY exec_date;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE requests range NULL daily_ips 263 NULL 488213 Using index for group-by (scanning)
ben daha bu sorguyu optimize edebilirsiniz herhangi bir yolu var mı var?
Using index for group-by (scanning)
tam olarak ne anlama geliyor? İfadenin COUNT(DISTINCT ip_address)
kısmı olmasa da, tüm GROUP BY
tümcenin tamamen bir dizinden yapıldığı anlamına mı geliyor?
Teşekkürler Danny, meraktan çıkmış olursam, '' group-by (scan '') için indeks kullanılması 'GROUP-BY' ya da' DISTINCT' maddesine uygulanan indekse değinirse, anlayabileceğim herhangi bir yol var mı? – user784637
DISTINCT sadece [GROUP BY' özel bir durum] olduğundan (http://dev.mysql.com/doc/refman/5.0/en/distinct-optimization.html) ve her iki sütun da aynı tablo, aynı endeks, emin değilim. –