一、选择合适的列建立索引

1.在where从句,group by从句,order by从句,on从句中出现的列(select)

2.索引字段越小越好(表每页数据才会更多,IO效率会更高)

3.离散度大的列放到联合索引的前面

select * from payment where staff_id=2 and customer_id=584;

index(staff_id,customer_id)好?还是index(customer_id,staff_id)好?

由于customer_id的离散度更大(重复率小,可选择性更大),所以应该使用index(customer_id,staff_id)

二、索引维护

冗余索引是指多个索引的前缀列相同,或是在联合索引中包含了主键的索引。如下:key(name,id)就是一个冗余索引

create table test(

id int not null primary key,

name varchar(10) not null,

key(name,id)

)engine=innodb;

//可以删除冗余索引,达到优化效果。

使用pt-duplicate-key-checker工具检查重复及冗余索引

pt-duplicate-key-checker \

-uroot \

-p '' \

-h 127.0.0.1

删除不用索引

目前mysql中还没有记录索引的使用情况,但是在PerconMySQL和MariaDB中可通过INDEX_STATISTICS表来查看哪些索引未使用,

但在mysql中目前只能通过慢查日志配合pt-index-usage工具来进行索引使用情况分析。

pt-index-usage \

-uroot -p'' \

mysql-slow.log

mysql 重复率高字段 索引_MySQL性能优化(二)索引优化相关推荐

  1. mysql 重复率高字段 索引,为什么重复值高的字段不能建索引(+聚集索引和非聚集索引)...

    ?一.原因: -?非聚簇索引存储了对主键的引用,如果?select?字段不在非聚簇索引内,就需要跳到主键索引. -?如果非聚簇索引值重复率高,那么查询时就会大量出现上图中从右边跳到左边的情况,导致整个 ...

  2. seo文章重复率高不利于收录

    内容是一个网站灵魂, 有句话说的很好:一切以您的内容开始和结束.内容为王,不是吹出来的,而是由千千万万的站长朋友所验证过的.一个网站如果没有内容,就没有可读性而言了,想要让更多的人对你网站有好感,就要 ...

  3. 2篇word文档比较重复率_本科论文写作重复率高的原因,毕业论文降重技巧总结!...

    论文重复率的问题,是大学高等院校都比较关心的一点,大学生在论文写完以后,都要经过知网论文检测,在查看重复报告的时候,无法直视,因为论文重复率提高啦.经过几次论文降重修改还是没法降低论文重复率.那么论文 ...

  4. 计算机SCI论文重复率高,有什么降重技巧? - 易智编译EaseEditing

    不管是计算机还是其他的专业,论文重复率高,就要进行论文降重. 有一些简单的降重的技巧可以分享一下: "中英中"互换法 用翻译软件先翻译成英文, 再翻译回中文,之后手工修改润色一下, ...

  5. mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

  6. mysql如何给text字段添加索引_MySQL 是如何利用索引的

    阅读本文大概需要 4 分钟. 一.前言 在 MySQL 中进行 SQL 优化的时候,经常会在一些情况下,对 MySQL 能否利用索引有一些迷惑.例如: MySQL 在遇到范围查询条件的时候就停止匹配了 ...

  7. MySQL支持的四种索引_Mysql常见四种索引的使用

    提到mysql优化,索引优化是必不可少的.其中一种优化方式 --索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升. 我们知道项目性能的瓶颈主要是在"查(select)&q ...

  8. mysql 行级锁 索引_mysql 行级锁 索引唯一值

    做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统.假设 id=1 的这本书库存为 1 ,但是有 2 个人同时来借这本书,此处的逻辑为 Select rest ...

  9. mysql二级索引_mysql 什么是二级索引

    ALTER TABLE t1 ADD INDEX(or CREATE INDEX) ALTER TABLE t1 ADD FULLTEXT INDEX ALTER TABLE t1 ADD COLUM ...

最新文章

  1. JS报“Uncaught TypeError: undefined is not a function ”异常
  2. 基于单样本单统计推断-假设检验
  3. D. Multiset(树状数组 + 二分)
  4. mysql caching_Spring Caching抽象和Google Guava Cache
  5. 基于Flink的超大规模在线实时反欺诈系统的建设与实践
  6. matlab2020数值计算,MATLAB2020从入门到精通
  7. python目录操作函数_Python3目录操作
  8. springcloud生产环境一般怎么部署_生产环境遇到这些ogg报错该怎么处理?
  9. 软件方法(下)分析和设计第8章分析 之 分析类图——知识篇(20211227更新)
  10. Unity模拟鼠标点击
  11. (Java笔记)静态代理
  12. xml文件转json文件
  13. JDBC 数据库增删改查的通用代码示例详解
  14. 【生活日记】  路在脚下,更在心中,心随路转,心路常宽
  15. MySQL5.7官方下载链接导航
  16. windows7远程桌面
  17. H323端口开放一览表
  18. Unity3D求向量间的夹角
  19. 思维导图 基础篇(18)TBLI 考试内容 评分标准
  20. 使用jflash可以将芯片flash中的程序(16进制格式)读出来 jflsah软件在jlink驱动包里面

热门文章

  1. QT快速入门、三点求圆心实现详解
  2. Qt学习笔记之路径问题(window与linux下)
  3. Linux块设备驱动程序原理
  4. 猎豹浏览器怎么不能设置背景着颜色护眼?
  5. libxml中用到的Xpath语法说明
  6. 30天敏捷生活(3):设计你的生活看板
  7. 如何定义和实现一个类的成员函数为回调函数
  8. 3.2.5 四则运算的例子
  9. 企业核心员工的长期激励计划
  10. Oracle外键需要建索引吗?