mysql 索引建立
如何建立mysql索引?
创建索引原则
1、左前缀原则 :
mysql索引匹配会从右匹配,到遇到( > < between like)终止。如 我们建立索引(a,b,c,d), a = 1 and b=2 and c>3 and d=4。此时,索引d不会被用上。真正有效的索引(a, b, c)。如果把索引建立成(a,b,d,c), 则四个索引都能被用上
2、in 和 = 顺序可以随意。
如可建立索引(a, b , c)任意顺序 , a = 1 and c=2 and b=3 , 三个索引依然有效。这是Mysql查询优化器优化成可以识别的索引形式
3、扩展索引,尽量不新建索引。
如原有索引(a), 现在有需求,需要索引(a, b),这时你完全没必要去新建一个索引(a, b)。你只需要扩展你原有的索引(a),把它改为(a, b).此时, 既能保证原有的索引,也能达到新索引的目的。如 a = 1 a = 1 and b=2 这两个分别能走到索引(a),(a, b)
4、尽量选择区分度高的列作为索引
区分度的公式是count(distinct X)/count(*), 表示字段不重复的比例,比例越大我们扫描的记录数越少,唯一键的区分度是1,而一些状态、性别字段可能在大数据面前区分度就是0
mysql 索引建立的更多相关文章
- MySQL 索引建立原则及注意事项
一.索引建立的几大原则: 1) 最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>.<.between.like)就停止匹配,比如a = 1 and b = 2 ...
- MySql索引建立规则
为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引.本小节将向读者介绍一些索引的设计原则. 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确 ...
- MySQL索引建立与删除
#添加索引alter table 表名 add index 索引名称(列名1, 列名2);alter table 表名 add index 索引名称(列名1, 列名2, 列名3);alter tabl ...
- MySQL索引建立和使用的基本原则
合理设计和使用索引 在关键字段的索引上,建与不建索引,查询速度相差近100倍. 差的索引和没有索引效果一样. 索引并非越多越好,因为维护索引需要成本. 每个表的索引应在5个以下,应合理利用 ...
- mysql索引建立原则
看了网上一些网上关于创建索引的原则,在这里做一下总结: 1.尽量创建在使用频率较高的字段上,比如主键,外键,where总用到的字段,join是相关联的字段 2.如果表过大,一定要创建索引. 3.索引应 ...
- mysql 索引、查询优化
查询计划Explain mysql查询过程中,如若想了解当前sql的执行计划,可以通过explain your_sql的方式查看,具体可以参考mysql官方解释:https://dev.mysql.c ...
- mysql索引的建立和使用
转自[http://www.cnblogs.com/mywebname/articles/555696.html] 一.索引的概念 索引就是加快检索表中数据的方法.数据库的索引类似于书籍 ...
- 千万级MySQL数据库建立索引,提高性能的秘诀
实践中如何优化MySQL 实践中,MySQL的优化主要涉及SQL语句及索引的优化.数据表结构的优化.系统配置的优化和硬件的优化四个方面,如下图所示: SQL语句及索引的优化 SQL语句的优化 SQL语 ...
- MySql在建立索引优化时需要注意的问题
MySql在建立索引优化时需要注意的问题 设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率.设计MySql索引的时候有一下几点注意: 1,创建索引 对于查询占主要的应用来说,索引显得 ...
随机推荐
- nigix以及相关
nginx+php的配置 php与nginx整合 http://www.thinkphp.cn/topic/13082.html [入门篇]Nginx + FastCGI 程序(C/C++) 搭建高性 ...
- Eclipse修改编码后乱码解决
Eclipse用了一段时间,都是用的gbk编码的,突然想要规范下,强迫症犯了,于是将在Window->Preference->Appearances->Workspace修改Text ...
- Ubuntu忘记管理员密码
Ubuntu中不小心把管理员密码忘记了,真叫人头大. 现提供一个解决方案: 1.重启 Ubuntu 系统,按 Esc 进入GRUB 菜单界面,如下图: 2.选择recovery mode. (第二个) ...
- OK335xS LAN8710 phy driver hacking
/******************************************************************** * OK335xS LAN8710 phy driver h ...
- innodb force recovery
innodb force recovery的6种设置: 1.innodb force recovery=1,即使发现了损坏页面也继续让服务器继续运行,这个选项对于备份或者转存当前数据尤为有用2.inn ...
- 【转】用Pthread创建线程的一个简单Demo
一.我们直接在COCOS2D-X自带的HelloWorld工程中添加代码.首先将Pthread的文件包含进来包括lib文件.在HelloWorld.cpp中引入头文件和库. #include &quo ...
- 彩色网页变黑白色CSS代码变黑白色调!
<style> html { -webkit-filter: grayscale(%); -moz-filter: grayscale(%); -ms-filter: grayscale( ...
- Window.Event.KeyCode=13
Window.Event.KeyCode=13是enter键处发windows事件,enter键的ASCII是13. <input type="password" name= ...
- python运算符的优先级
运算符优先级 如果你有一个如2 + 3 * 4那样的表达式,是先做加法呢,还是先做乘法?我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符. 下面这个表给出Python的运 ...
- -Xms 和 -Xmx 不能设置的太大
之前我一直有一个疑问,就是-Xms 和 -Xmx不是设置的越大越好吗?现在才明白怎么回事. 通过在命令行中执行 java 或者启动某种基于 Java 的中间件来运行 Java 应用程序时,Java 运 ...