宁夏住房和城乡建设局网站,网络广告策划公司,谁有可以用的网站,专业的单位网站开发公司优点有了索引.对于记录数量很多的表,可以提高查询速度.缺点索引是占用空间的.索引会影响update insert delete速度ALERT!!!1 索引要创建在where和join用到的字段上.2 以下操作符号可以应用索引#xff1a;#xff0c;#xff0c;BETWEEN#xff0c;IN#xff0c…优点有了索引.对于记录数量很多的表,可以提高查询速度.缺点索引是占用空间的.索引会影响update insert delete速度ALERT!!!1 索引要创建在where和join用到的字段上.2 以下操作符号可以应用索引BETWEENINLIKE不以%_开头以下需要注意不使用索引, NOT IN, LIKE %_开头 可以用 a1 or a3 代替,NOT IN 可以用NOT exists代替3 在使用max() min()时最好加上索引.4 单索引要创建在确实需要的地方.多列索引 有最佳左前缀特性 所以尽量左边的字段是最常用的.5索引不会包括有NULL值,就是有NULL,索引就失效6使用短索引,一个字段字太多,可以建立部分索引,只取前十个字.节约空间.7不要在列上运算.例如:where MD5(“password”) “myz”8explain select * from myz 来测试一下语句的效率…输入 explain select * from customer; 后出现一张表个行的意思如下table显示此行数据属于哪张表type重要的一列显示使用了何种连接从好到差依次为const、eq_ref、ref、range、index、allpossible_keys可以应用在这张表中的索引如果为null则表示没有可用索引key实际使用的索引如为null表示没有用到索引key_len索引的长度在不损失精确度的情况下越短越好ref显示索引的哪一列被使用了如果可能的话是个常数rows返回请求数据的行数extra关于mysql如何解析查询的额外信息下面会详细说明。type的描述system表只有一行这是const连接类型的特例const表中一个记录的最大值能够匹配这个查询(索引可以是主键或唯一索引)。因为只有一行这个值实际就是常数因为mysql先读这个值再把它当作常数对待eq_ref从前面的表中对每一个记录的联合都从表中读取一个记录。在查询使用索引为主键或唯一索引的全部时使用ref只有使用了不是主键或唯一索引的部分时发生。对于前面表的每一行联合全部记录都将从表中读出这个连接类型严重依赖索引匹配记录的多少越少越好range使用索引返回一个范围中的行比如使用或extra行的描述distinctmysql找到了域行联合匹配的行就不再搜索了not existsmysql优化了left join一旦找到了匹配left join的行就不再搜索了range checked for each没找到理想的索引一次对于从前面表中来的每一个行组合record(index map: #)检查使用哪个索引并用它从表中返回行这是使用索引最慢的一种using filesort看到这个就需要优化查询了mysql需要额外的步骤来发现如何对返回的行排序。他根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行。using index列数据是从单单使用了索引中的信息而没有读取实际行的表返回的这发生在对表的全部的请求列都是同一个索引时using temporary看到这个就需要优化查询了mysql需要创建一个临时表来查询存储结果这通常发生在多不同的列表进行order by时而不是group bywhere used使用了where从句来限制哪些行将与下一张表匹配或是返回给用户。如不想返回表中用的全部行并连接类型是all或index这就会发生也可能是查询有问题。9查看索引信息show index from tablename;觉得文章有用立即和朋友一起 共学习 共进步猜您喜欢