我正在使用一堆简单的SELECT查询来访问一个相当静态的表
为了提高性能,我正在考虑为这些数据编写自己的内存缓存。
但这感觉就像做了DB的肮脏行为。
是否存在特定表的粒度缓存机制?
答案 0 :(得分: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/
还可以使用索引并编写更智能的查询 但如果您没有向我们展示查询,我无法帮助您。
答案 1 :(得分:0)
有一个内存数据库(如innodb)。您可以在创建表时选择它。
答案 2 :(得分:0)
您可以尝试将静态ISAM表复制到临时表中,该表根据定义为ram-resident。 OTOH,我觉得这个表已经被缓存了,所以这可能没多大帮助。如何向我们展示您的查询?