我有MYISAM表,有60 000 000行。它有很多INSERTS和一些選擇(不是更新)。優化MySQL大表
執行插入塊讀取(明顯)。
我只讀取1%的行,其他99%的行將永遠不會讀取。
我想優化這個。我認爲這是一個很好的方式來創建只有流行的SELECT的重複表。
是否有任何現成的解決方案呢?我正在PHP + MySQL工作。
我有MYISAM表,有60 000 000行。它有很多INSERTS和一些選擇(不是更新)。優化MySQL大表
執行插入塊讀取(明顯)。
我只讀取1%的行,其他99%的行將永遠不會讀取。
我想優化這個。我認爲這是一個很好的方式來創建只有流行的SELECT的重複表。
是否有任何現成的解決方案呢?我正在PHP + MySQL工作。
如果您有辦法找到那些不活動的行,例如,您可以使用cronjob將INSERT...SELECT
和DELETE
表中的非活動行復制到另一個表中。如果這些行有一定的時間戳記範圍。這使您能夠在不影響大多數其他查詢的性能的情況下查找這些行。
發佈表模式,使用索引進行快速搜索 –
如果您有一個auto_increment主鍵,以便INSERT全部轉到表的結尾,並且您在SELECT的WHERE子句中使用的列的合適索引你不應該有任何問題。 – SeanN
你怎麼知道哪些行很受歡迎?如果大部分存儲的數據都不會被查詢,那麼爲什麼將它們存儲在第一位呢? – Shadow