word
word
1 / 8
word
Mysql优化
使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。EXPLAIN 的查询结果还会告诉你你的索引主---------------+--------+
QCACHE_free_blocks:空闲存块的数量。
QCACHE_free_memory:空闲存存的数量。
QCACHE_hits:查询缓存被访问的次数。
QCACHE_inserts:加入到缓存的查询数量。
QCACHE_lowmem_prunes:由于存较少从缓存删除的查询数量。
QCACHE_not_cached:非缓存查询数(不可缓存,或由于query_cache_type设定值未缓存)。
word
word
4 / 8
word
Qcache_queries_in_cache:登记到缓存的查询的数量。
Qcache_total_blocks:查询缓存的总块数。
. 高速缓存语句要求
下面的两个查询被查询缓存认为是不相同的:
SELECT * FROM tbl_name
Select * from tbl_name
查询必须是完全相同的(逐字节相同)才能够被认为是相同的。
. 不缓存的语句
如果一个查询包含下面函数中的任何一个,它不会被缓存
BENCHMARK()
CONNECTION_ID()
CURDATE()
CURRENT_DATE()
CURRENT_TIME()
CURRENT_TIMESTAMP()
CURTIME()
DATABASE()
带一个参数的ENCRYPT()
FOUND_ROWS()
GET_LOCK()
LAST_INSERT_ID()
LOAD_FILE()
MASTER_POS_WAIT()
NOW()
RAND()
RELEASE_LOCK()
word
word
5 / 8
word
SYSDATE()
不带参数的UNIX_TIMESTAMP()
USER()
2. EXPLAIN
. 查看表的索引
SHOW INDEX FROM tbl_name;
. 创建索引
ALTER TABLE 表名 ADD INDEX 索引名 (索引列) ;
. 说明
使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。
EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等,等等。
挑一个你的SELECT语句(推荐挑选那个最复杂的,有多表联接的),把关键字EXPLAIN加到前面。然后,你会看到一表格。下面的这个示例中,我们忘记加上了group_id索引,并且有表联接:
当我们为 group_id 字段加上索引后:
我们可以看到,前一个结果显示搜索了 7883 行,而后一个只是搜索了两个表的 9 和 16 行。查看rows列可以让我们找到潜在的性能问题。
. 参数
id:这是SELECT的查询序列号。
select_typ
Mysql优化 来自淘豆网m.daumloan.com转载请标明出处.