2017-06-22 52 views
0

靜態視圖在我的建築,我有一個大單表:的MySQL保持始終處於高速緩存

  • 正常更新,並且可以被認爲是「只讀」
  • 含有超過2個百萬條記錄
  • 在幾個數據庫共享(每個MT客戶)

我把這個表中一個單獨的數據庫和我創建的視圖就可以了,在每個SI數據庫。

現在,這種配置正在減慢系統。 我的想法是在高速緩存中,以「凍結」這一觀點,但我找不到這樣做

上午我在正確的方式方法是什麼?你有關於如何最大限度地利用這種情況的建議嗎?

感謝

回答

0

緩存在MySQL不會幫助,因爲MySQL的query cache認爲,可以在查詢中使用的查詢,而不是單個表的結果。

根據您的表的大小和服務器的可用物理內存,您可以添加一個memory table,它與您的大配置表具有完全相同的結構。

每當MySQL服務器重新啓動或基本配置表發生變化時,您都必須運行一個填充內存表的腳本(如有更改,只需更新它)。在您的查詢中,您可以直接引用內存表,而不是通過視圖。

但是,在內存表上有很多限制,所以我不確定這是否適合您的情況。

通常,表分區,創建適當的索引以及調整MySQL配置可以顯着提高數據庫的性能。

必須使用explain聲明逐個評估緩慢的查詢,而設置必須由知識豐富的MySQL DBA評估。