当前位置:Gxlcms > 数据库问题 > MYSQL1

MYSQL1

时间:2021-07-01 10:21:17 帮助过:11人阅读

一:对查询就行优化 避免全表查询

1.首先考虑在where及order by 列上建立索引

2.where子句   LIKE  ‘%abc%‘ 前置%   引擎放弃使用索引而进行全表扫描  

3.where子句   操作符>,<, !=          引擎放弃使用索引而进行全表扫描

4.where子句   空值判断  is null           引擎放弃使用索引而进行全表扫描   可以在空值列设置默认0

5.where子句  or             引擎放弃使用索引而进行全表扫描   可以  select a from b where c=0 union all select a from b where c=1

6.where子句  in 和 not in       引擎放弃使用索引而进行全表扫描    可以 连续的值使用 between and

7.where子句  对字段表达式操作+ - * /等      引擎放弃使用索引而进行全表扫描   可以 where a/2=10 改为 where a=10*2

8.where子句  对字段进行函数操作     引擎放弃使用索引而进行全表扫描

9.where子句  =左边进行函数,算术或者其他表达式操作    无法正确使用索引

10.在使用索引字段做条件时,若为复合索引则需字段顺序和索引顺序相同

11.有时候  exists 比 in 好一些

12.并不是所有索引都有用  索引是根据表中数据进行查询优化的    大量重复数据索引不会起作用  如 字段sex男女

13.一张表中索引不要超过6个,因为insert 和 update 会重建索引     耗时

14.数字字段 只包含数字的字段不要用字符型,会浪费存储空间,降低查询性能

15.varchar和nvarchar 比  char,nchar好  变长字段存储空间小 查询快

16.select * from a  慢    要用具体字段代替 *

 

本文大部分为个人实践经验,借鉴部分网上前辈所言

 

MYSQL1

标签:操作符   重复数   insert   not   前置   like   字符型   nbsp   条件   

人气教程排行