MySQL优化笔记

游客

标题:MySQL优化笔记
正文:
一、查询优化使用EXPLAINJava代码 1. EXPLAIN tbl_name EXPLAIN tbl_name返回Field、Type、Null、Key、Default、Extra这几列对应的表中每个字段的值相当于DESCRIBE tbl_name或SHOW COLUMNS FROM tbl_nameJava代码 1. EXPLAIN [EXTENDED] SELECT select_options EXPLAIN [EXTENDED] SELECT select_options借助于EXPLAIN，可以知道什么时候必须为表加入索引以得到一个使用索引来寻找记录的更快的SELECTEXPLAIN为用于SELECT语句中的每个表返回一行信息EXPLAIN的每个输出行提供一个表的相关信息，并且每个行包括下面的列：idSELECT识别符。这是SELECT的查询序列号。select_typeSELECT类型，可以为以下任何一种：1, SIMPLE简单SELECT(不使用UNION或子查询)2, PRIMARY最外面的SELECT3, UNIONUNION中的第二个或后面的SELECT语句4, DEPENDENT UNIONUNION中的第二个或后面的SELECT语句，取决于外面的查询5, UNION RESULTUNION的结果。6, SUBQUERY子查询中的第一个SELECT7, DEPENDENT SUBQUERY子查询中的第一个SELECT，取决于外面的查询8, DERIVED导出表的SELECT(FROM子句的子查询)table输出的行所引用的表。type联接类型。下面给出各种联接类型，按照从最佳类型到最坏类型进行排序：1, system表仅有一行(=系统表)。这是const联接类型的一个特例。2, const表最多有一个匹配行，它将在查询开始时被读取。因为仅有一行，在这行的列值可被优化器剩余部分认为是常数。const表很快，因为它们只读取一次！3, eq_ref对于每个来自于前面的表的行组合，从该表中读取一行。这可能是最好的联接类型，除了const类型。它用在一个索引的所有部分被联接使用并且索引是UNIQUE或PRIMARY KEY。4, ref对于每个来自于前面的表的行组合，所有有匹配索引
[<<][[1]][2][3][>>]

查看评论(0)
发表评论

首页