mysql 优化(一)

mysql 优化

慢查询

    show variables like 'long_query_time';  
    show variables like 'slow%'; 

explain

索引

  1. 主键索引

  2. 普通索引

  3. 唯一索引

  4. 全文索引

      alter table tname add primary key(列名)
      create index 索引名 on 表 (列名1,列名2)
      drop index 索引名 on 表名
    

dql语句操作比dml语句要多得多!接近9:1

    show status like 'com_select';
    show status like 'com_insert';  

什么情况下不要使用索引

  1. 数据唯一性差的字段不要使用索引 比如性别,只有两种可能数据。意味着索引的二叉树级别少,多是平级。这样的二叉树查找无异于全表扫描。
  2. 频繁更新的字段不要使用索引 比如logincount登录次数,频繁变化导致索引也频繁变化,增大数据库工作量,降低效率。
  3. 字段不在where语句出现时不要添加索引 只有在where语句出现,MySQL才会去使用索引
  4. 数据量少的表不要使用索引

添加了索引但不被使用的几种常见可能

  1. 多列索引查询条件没有使用最左边的字段
  2. 如果条件中有or
  3. 类型不对应 列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引.
  4. MySQL优化器的决定
  5. like '%aaa' 不会使用到索引 只要模糊查询的模糊值在字符串前面,则不会使用索引'%aaa'和'_aaa'都不会.

参考地址

标签: mysql, 索引, 优化

添加新评论