【说站】mysql有哪些建立索引的方法
2023-06-13 09:13:15 时间
mysql有哪些建立索引的方法
1、最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。
2、=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式
3、尽量选择区分度高的列作为索引,区分度的公式是count(distinct col)/count(*),表示字段不重复的比例,比例越大我们扫描的记录数越少,唯一键的区分度是1,而一些状态、性别字段可能在大数据面前区分度就是0,那可能有人会问,这个比例有什么经验值吗?使用场景不同,这个值也很难确定,一般需要join的字段我们都要求是0.1以上,即平均1条扫描10条记录
4、索引列不能参与计算,保持列“干净”,比如from_unixtime(create_time) = ’2014-05-29’就不能使用到索引,原因很简单,b+树中存的都是数据表中的字段值,但进行检索时,需要把所有元素都应用函数才能比较,显然成本太大。所以语句应该写成create_time = unix_timestamp(’2014-05-29’);
以上就是mysql建立索引的方法,大家学会后也试着建立索引吧。更多mysql学习指路:MySQL
推荐操作系统:windows7系统、mysql5.8、DELL G3电脑
相关文章
- Redis在提高MySQL性能的应用(redis与mysql)
- MySQL查看表内容的常用命令(mysql查看表内容命令)
- MySQL合并多条记录的方法(mysql多条记录合并)
- MySQL简单入门:从零开始(mysql-1)
- 标题:MySQL:如何设置安全的配置密码(mysql配置文件密码)
- MySQL时间段统计表:解析、应用与分析(mysql时间段统计表)
- MySQL主从同步:解决方案与技巧(mysql主从同步问题)
- 出数据MySQL数据库中如何快速取出数据(mysql取)
- MySQL:关于日期函数的使用(日期函数mysql)
- 使用MySQL函数CASE对数据进行分类处理(mysql函数case)
- MySQL优化之前缀索引的秘诀(mysql 前缀索引)
- CMD中操作MySQL构建数据库的过程(cmd中mysql的进程)
- MySQL中使用单引号的方法及注意事项(mysql中单引号在哪)
- MySQL 实现一对多连接查询的方法(mysql一对多连接查询)
- MySQL操作常见错误代码mysqlerrno及其解决方法(mysql_errno)
- 无外键,MySQL数据库的设计和优化方法(mysql 不使用外键)
- MySQL下载必备要素(mysql下载都需要什么)
- 找到MySQL安装后的安装路径(mysql下完在哪)
- MySQL连接查询出现错误的解决方法(mysql不能用连接查询)
- MySQL上的日期格式掌握设置方法(mysql上date格式)
- MySQL频繁自动重启的解决方案(mysql不断自动重启)
- mysql连接过多和死掉以及拒绝服务的解决方法