2011-10-20 38 views
3

我打了一堆相當簡單的SELECT查詢的靜態表。
爲了提高性能,我正在考慮爲自己的內存緩存寫入我的的數據。但是這感覺就像在做DB的骯髒行爲。

是否有這樣的事情作爲一個特定的表的粒度緩存機制?
MySQL單個表緩存

+1

您可以創建類型爲MEMORY(或HEAP)的表,但在mysql重新啓動時會丟失它們。 – ggiroux

回答

5

如果您使用InnoDB,MySQL會自動爲您緩存表,併爲索引的常用部分創建散列索引。
我建議你增加MySQL擁有的內存量,它應該自己處理你的問題。
默認情況下,MySQL設置爲節省空間,而不是快速運行。

這裏有幾個鏈接,讓你與調整準備:

http://www.debianhelp.co.uk/mysqlperformance.htm
http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/

還可以使用索引和編寫更智能的查詢。
但是如果您不向我們展示查詢,我無法幫到您。

0

有一個內存數據庫(如innodb)。您可以在創建表格時選擇它。

+0

如果InnoDB具有足夠的可用緩衝區空間,它將緩存所有內容。 – Johan

0

您可以嘗試將您的靜態ISAM表複製到臨時表中,該表定義爲RAM駐留。 OTOH,我認爲桌子已經被緩存了,所以這可能沒有多大幫助。如何向我們展示您的查詢?