mysql中innodb、mysaim存储引擎的区别及explain的使用

mysql中主要的存储引擎是innodb、mysiam。下面介绍一下它们的区别:
innodb、mysiam
innodb:注重事物、行级锁、R/W比较少,频繁更新大字段
mysiam : 注重性能、表级锁、R/W > 100 :1且update相对较少。

总结 :innodb整体性能远高于myisam。同时,innodb的索引不仅需要缓存索引本身,也缓存数据,所以innodb需要更大的内存。如果你不知道一个表需要使用什么存储引擎,建议使用innodb。

explain使用:
explain在mysql中主要是测试sql语句的性能及对sql语句的优化。
面举个栗子!

各个参数的意义:

id : 查询的序列号
select_type :  查询的类型 ,主要包括普通查询、联合查询、子查询。
table : 所访问数据库的表的名称
type :   联合查询使用的类型
possible_keys : 指出mysql能使用哪个索引在该表中找到该行,如果这个值为空,则表示没有相关的索引。
key : 显示mysql实际决定使用的建,如果没有索引被选择,键是null。
key_len : 显示mysql决定使用键的长度,如果key是空,则长度就是null。
ref : 显示哪个字段或常数与key一起使用。如果使用了索引则显示const,否则,显示null

type显示的访问类型是重要指标,结果从好到坏:system (系统表)、const (读常量) 、eq_ref (最多一条匹配结果,通常是通过主键访问)、ref 、fulltext(全文索引检索)、ref_or_null、index_merge(合并索引结果集)、unique_subquery、index_subquery(子查询返回的是索引,但非主键)、range(索引范围扫描)、index(全索引扫描)、all(全表扫描)
展开阅读全文

没有更多推荐了,返回首页