Mysql优化整理

牢记 SQL优化的目的 :

        1、减少CPU消耗

        2、减少I/O消耗

Mysql索引:

    聚集索引     

    主键索引

    非聚集索引         

    唯一索引     

    非唯一索引     

    组合索引     

    覆盖索引

使用索引的优点

    1.可以通过建立唯一索引或者主键索引,保证数据库表中每一行数据的唯一性.

    2.建立索引可以大大提高检索的数据,以及减少表的检索行数

    3.在表连接的连接条件 可以加速表与表直接的连接

    4.在分组和排序字句进行数据检索,可以减少查询时间中 分组 和 排序 时所消耗的时间

使用索引的缺点

    1.创建和维护索引 耗费时间,随着数据量的增加而增加

    2.索引文件占用物理空间,特别是对长字段的多种组合索引

    3.对索引字段的数据进行 INSERT,UPDATE,DELETE 的时候,索引也要动态的维护, 降低数据的维护速度

索引使用的一些意见

    1、索引尽量简短,特别是主键索引

    2、索引字段设置为not null

    3、表字段设计尽量短(int比varchar短)

    4、表达式左边不能使用函数

    5、索引在筛选率越高的字段上创建效果越好

    6、对字段修改操作远大于查询时,不应该建索引

    7、where条件中不要包含一些隐式转换

    8、表达式右边尽量不要使用值时刻变化的函数如sysdate()

    9、使用join时join字段的类型和字符集尽量保持一致

Or的查询优化

    or一般不经过索引,所以为了避免全表扫描,一般可以用union all来替代

猜你喜欢

转载自my.oschina.net/u/3095457/blog/1563286
今日推荐