我有大的 MySQL表(200K +記錄)。從這張表格中,我大多讀到最後的+ -1000條記錄。在這張表中,我每天插入大約500條記錄。 我的問題。我應該使用這個表並從中讀取,還是應該使用一個較小的表,用作緩存。一個大的表vs大+緩存表
什麼我緩存表的意思是:每一次插入到大表將開始觸發,該數據複製到「緩存」表,並刪除舊的(以保持最大的範圍大小1000個記錄)。現在,如果我讀了一些東西,我主要搜索「緩存」的「最後條目記錄」。用戶是否想讀取「歸檔」數據,我從大表中讀取。
這是一個很好的解決方案,否則性能會受到運行觸發器和從緩存中刪除表的影響?或者..會有什麼不同嗎?
我主要運行的SQL查詢包含SELECT
s,其中兩個JOIN
s和範圍內的搜索結果(使用HAVING
子句)。我正在使用MyISAM DB引擎。
如果你有連接索引,所以你防止全表掃描,你的緩存表只會增加插入/更新開銷,但不會顯着影響選擇。 –
是的。我有比較或JOINed的列上的索引。 –