浅谈MySQL数据库优化
2007-11-11 13:22:01 来源:WEB开发网核心提示: 4 MySQL(和PHP搭配之最佳组合)高速缓存管理 查询缓存存储SELECT查询的sql脚本以及发送给客户端的相应结果,如果随后收到一个相同的查询,浅谈MySQL数据库优化(7),服务器从查询缓存中重新得到查询结果,而不再需要解析和执行查询,这包括那些映射到改变了的表的使用MERGE表的查询,一个表可以被许多类型的
4 MySQL(和PHP搭配之最佳组合)高速缓存管理
查询缓存存储SELECT查询的sql脚本以及发送给客户端的相应结果。如果随后收到一个相同的查询,服务器从查询缓存中重新得到查询结果,而不再需要解析和执行查询。通过在configure中使用--without-query-cache选项,可以从服务器中彻底去除查询缓存能力。
查询解析之前进行比较,因此下面的两个查询被查询缓存认为是不相同的:
SELECT * FROM tbl_nameSelect * from tbl_name
查询必须是完全相同的(逐字节相同)才能够被认为是相同的。另外,同样的查询字符串由于其它原因可能认为是不同的。使用不同的数据库、不同的协议版本或者不同 默认字符集的查询被认为是不同的查询并且分别进行缓存。
如果一个表被更改了,那么使用那个表的所有缓冲查询将不再有效,并且从缓冲区中移出。这包括那些映射到改变了的表的使用MERGE表的查询。一个表可以被许多类型的语句更改,例如INSERT、UPDATE、DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE。
查询高速缓存的大小
MySQL(和PHP搭配之最佳组合)> SHOW VARIABLES LIKE 'query_cache_size';+------------------+----------+| Variable_name | Value |+------------------+----------+| query_cache_size | 23068672 |+------------------+----------+1 row in set (0.01 sec)
修改高速缓存的大小
MySQL(和PHP搭配之最佳组合)> SET GLOBAL query_cache_size = 31457280;Query OK, 0 rows affected (0.00 sec)MySQL(和PHP搭配之最佳组合)> SHOW VARIABLES LIKE 'query_cache_size';+------------------+----------+| Variable_name | Value |+------------------+----------+| query_cache_size | 31457280 |+------------------+----------+1 row in set (0.00 sec)
更多精彩
赞助商链接