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’);
5.尽量的扩展索引,不要新建索引。比如表中已经有a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可
MySql 创建索引原则相关推荐
- MySQL 创建索引和索引效率验证
MySQL 创建索引和索引效率验证 对于一张存储数据的表来说,通常来说数据量会很大. 项目中总会有一些表数据量非常大,并且在使用过程中,需要频繁地到这些表中查询数据. 数据量大的时候,查询速度会明显变 ...
- MySQL创建索引失败
MySQL创建索引失败 报错信息: 原因:将数据库表中某个字段设为索引时,提示当前字段的长度过长,为3072个字节: 经过查询发现: 在mysql5.6中索引列的最大长度为767个字节 而对于utf- ...
- navicat下对mysql创建索引导致死锁,数据库崩溃,完美解决方案
文章目录 写在前面 一.短事务场景下,执行DDL语句场景分析 1.短事务场景下,执行表字段添加操作 2.短事务场景下,执行表字段修改操作 3.短事务场景下,执行表字段删除操作 (1)往里添加一条数据试 ...
- SQL CREATE INDEX (mysql 创建索引)语句
** SQL CREATE INDEX (mysql 创建索引)语句 ** 1.创建普通索引 SQL CREATE INDEX 语法 在表上创建一个简单的索引.允许使用重复的值: CREATE IND ...
- c mysql创建索引,如何创建mysql索引
索引是一种特殊的文件(innodb数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针. 注: [1]索引不是万能的! 索引可以加快数据检索操作,但会使数据修改操作变慢.每修 ...
- mysql 创建索引规范
1)用途.优缺点 用途:主要用于提高检索(排序)效率 优点:提高检索效率 缺点:增加新增.修改.删除删除索引的维护成本,需要增加额外的存在空间 ---------------------------- ...
- MySQL创建索引(CREATE INDEX)
索引的建立对于 MySQL 数据库的高效运行是很重要的,索引可以大大提升 MySQL 的检索速度. 基本语法 MySQL 提供了三种创建索引的方法: 1) 使用 CREATE INDEX 语句 可以使 ...
- mysql创建索引要加index吗_MySql创建索引,添加索引
alter table 数据库add index 索引名称(数据库字段名称) PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( ...
- MySQL 创建索引
索引的建立对于 MySQL 数据库的高效运行是很重要的,索引可以大大提升 MySQL 的检索速度. 基本语法 MySQL 提供了三种创建索引的方法: 1 使用 CREATE INDEX 语句 可以使用 ...
最新文章
- python 基础学习 正则表达式1(规则)
- CocoStudio游戏发布后资源加密大致实现思路
- eclipse基本断点调试
- 示波器到底选择多大的带宽合适
- oracle报错无效列类型,jooq oracle存储过程与ARRAY,无效列类型:1111
- 如何处理Dubbo调用超时
- java result元素_Java JDBC 中获取 ResultSet 的大小
- php 获取 uri,获取URI地址
- 从没想过会有一个这样的机会|大疆招聘
- 那些面对面试官的“绝杀技”
- 在MacOS系统中如何自定义屏幕保护程序?
- 基于SSM的教学质量系统
- Intellij IDEA安卓开发环境的搭建
- 《Java设计模式》刘伟 超清晰版本 下载链接
- 中兴新支点操作系统_中兴发国产操作系统新支点,好不好用测了才知道
- 几种统计图表的作用和区别
- 什么是SPA,如何实现SPA应用呢?
- 计算机论文研究思路怎么写,论文的研究思路模板范文 课题研究思路怎么写
- elasticsearch2.2之index映射参数的not_analyzed属性
- Bad Request This combination of host and port requires TLS. postman
热门文章
- 【运筹学】表上作业法 ( 最优解判别 | 初始基可行解 | 运费修改可行性方案 | 闭回路法 )
- 【Android 高性能音频】Oboe 开发流程 ( Oboe 完整代码示例 )
- 【FluidSynth】FluidSynth 简介 ( 相关资源链接 | 简介 | 特征 )
- LeetCode 312. Burst Balloons
- Docker实战(一)之使用Docker镜像
- Docker常用操作命令
- C#文件夹权限操作工具类
- PyQt5显示一个空白的窗口
- 监控Tomcat解决方案(监控应用服务器系列文章分享)
- win7系统怎么获取system权限?