為什么要這樣改 ?我的意思是 怎樣改才是去掉temp ? 只是把group by 放到子查詢里面去? 那有的group by 就是多張表的 那么要怎么改?
2017-03-28
優化 select max(payment_date) from payment
create index idx_payment_date on payment(payment_date);
create index idx_payment_date on payment(payment_date);
2017-03-23
extra列需要注意的返回值
Using filesort:看到這個的時候,查詢就需要優化了。MYSQL需要進行額外的步驟來發現如何對返回的行排序。它根據連接類型以及存儲排序鍵值和匹配條件的全部行的行指針來排序全部行
Using temporary:看到這個的時候,查詢需要優化了。這里,MYSQL徐喲創建一個臨時表來存儲接口,這通常發生在對不同的列表進行ORDER BY上,而不是GROUP BY上
Using filesort:看到這個的時候,查詢就需要優化了。MYSQL需要進行額外的步驟來發現如何對返回的行排序。它根據連接類型以及存儲排序鍵值和匹配條件的全部行的行指針來排序全部行
Using temporary:看到這個的時候,查詢需要優化了。這里,MYSQL徐喲創建一個臨時表來存儲接口,這通常發生在對不同的列表進行ORDER BY上,而不是GROUP BY上
2017-03-23
explain返回各列的含義
table:顯示這一行的數據是關于哪張表的
type:這是重要的列,顯示連接使用了何種類型。從最好到最差的連接類型為const、eq_reg、ref、range、index和ALL
possible_keys:顯示可能應用在這張表中的索引。如果為空,沒有可能的索引。
key:實際使用的索引。如果為NULL,則沒有使用索引。
key_len:使用的索引的長度。在不損失精確性的情況下,長度越短越好。
ref:顯示索引的哪一列被使用了,如果可能的話,是一個常數
rows:MYSQL認為必須檢查的用來返回請求數據的行數
table:顯示這一行的數據是關于哪張表的
type:這是重要的列,顯示連接使用了何種類型。從最好到最差的連接類型為const、eq_reg、ref、range、index和ALL
possible_keys:顯示可能應用在這張表中的索引。如果為空,沒有可能的索引。
key:實際使用的索引。如果為NULL,則沒有使用索引。
key_len:使用的索引的長度。在不損失精確性的情況下,長度越短越好。
ref:顯示索引的哪一列被使用了,如果可能的話,是一個常數
rows:MYSQL認為必須檢查的用來返回請求數據的行數
2017-03-23