索引有主键索引、唯一索引、普通索引

单列索引,复合索引。

复合索引(a,b,c),可以理解是有三个索引,分别是a、b、c三个索引

前缀不是a的话,复合索引都不起作用,前缀用函数或者是范围,比如《、》、like的索引都不起作用。

如果复合索引中的一个用范围,后面的都不起作用,比如a=1 and b>1 and c=2,则c的索引不起作用

or:a=1 or d=2 则索引不起作用

and:a=1 and d=2 前面的索引起作用;b=1 and d=2  不起作用

单列索引:like “abc%” 起作用, like “%abc” 索引不起作用

复合索引有出现null值的列,整个复合索引失效。

不要在索引列上使用函数

不要在数据基数小的列上使用索引,比如性别只有0和1

应该创建索引的列有where、group by、order by、distinct、on 后面,范围语句,例如between、>、<、in、like(“xxx%”)

order by 后面的字段也应该出现再查询字段中,不然索引会失效,除了主键

如果列是字符串类型,传入条件是必须用引号引起来,不然索引会失效

count(1)或count(列)代替count(*)在mysql中没有差别了

一次查询只能用到一个索引

mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,

mysql索引相关的更多相关文章

  1. mysql 索引相关

    引言: MYSQL由于其免费和开源的性质,在项目中用处广泛.大家都知道,一个MySQL数据库能够储存大量的数据,如果要在大量的数据中查找某一个数据,如果使用全表检索的话,即费时间又费力气,这时,就需要 ...

  2. 面试小知识:MySQL索引相关

    前言 本模板主要是一些面试相关的题目,对于每一道问题,我会提供简单的解答,答案的来源主要是基于自己看了各方资料之后的理解,如果有错的,欢迎指点出来. 1. 什么是最左前缀原则? 以下回答全部是基于My ...

  3. mysql 索引相关知识

    由where 1 =1 引发的思考 最近工作上被说了 说代码中不能用 where 1=1,当时觉得是应该可以用的,但是找不到什么理据, 而且mysql 语句优化这方面确实很薄弱   感觉自己mysql ...

  4. mysql 索引相关问题

    mysql中key .primary key .unique key 与index区别 https://blog.csdn.net/nanamasuda/article/details/5254317 ...

  5. mysql索引相关理解

    1.索引是高效获取数据的数据结构, 2.唯一索引,索引值不重复unique create unique index 索引名 on 表名(字段) alter table 表名 add unique in ...

  6. 【逐步完善】MySql索引相关

    在表中对某个字段添加索引: alter table tablename add index (columnname);

  7. Mysql——索引相关

    索引失效的情况: 随着表的增长,where条件出来的数据太多,大于20%左右,使得索引失效(会导致CBO计算走索引花费大于走全表)

  8. mysql开发相关

    1.mysql事务原理,特性,事务并发控制2.如何解决高并发场景下的插入重复3.乐观锁和悲观锁4.常用数据库引擎之间区别5.mysql索引6.B-Tree7.mysql索引类型8.什么时候创建索引9. ...

  9. 如何向女朋友介绍MySQL索引

    目录 一.前言 二.正文 三.索引的类型 四.动态查找树 五.B-Tree 1.B-Tree特征 2.B-Tree的查找(select) 3.B-Tree的插入(insert) 4.B-Tree的删除 ...

随机推荐

  1. html实现导航栏效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. Flux architecture

    [Flux architecture] Flux is a pattern for managing data flow in your application. The most important ...

  3. Frame animation

    [Frame animation] An animation defined in XML that shows a sequence of images in order (like a film) ...

  4. js中的arguments对象

    在Javascript中没有函数重载,而arguments对象弥补了这点不足. js函数的参数是一个数组,在参数个数不固定的情况下,只需要给方法传递不同元素个数的数组即可.即使声明函数时没有形式参数, ...

  5. as3.0中如何阻止事件冒泡

    原作者:菩提树下的杨过转载出处:http://yjmyzz.cnblogs.com 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究 ...

  6. Jmeter使用HTTP代理服务器进行录制

    1.添加一个线程组 2.在工作台右键添加HTTP代理服务器 3.配置代理服务器 *注:端口号不能被占用.排除模式中添加的东西将在录制时不被录制上. 端口可能会有被占用的情况,这种情况下点击启动会报错, ...

  7. df.dropna()函数和df.ix(),df.at(),df.loc()

  8. Centos7在虚拟机中扩展磁盘空间

    说明 情况:已经在VirtualBox虚拟机创建了一个磁盘并已经装好了系统,发现磁盘空间太小,需要再添加一个磁盘的大小.或者说Centos7系统需要扩展磁盘空间. 步骤 1.VirtualBox新建磁 ...

  9. [Unity3D]降低向Shader中传值的开销

    Unity3D中提供了很多API用于向shader传值,这篇文章对比测试了两类不同的使用方法的性能. 正文 Unity3D中,通过C#代码向shader传值有两种方式. 一种是面向具体的materia ...

  10. 从零开始写bootloader(1)

          下面是具体的代码实现:  #define S3C2440_MPLL_200MHZ ((0x5C<<12)|(0x01<<4)|(0x02)) #define MEM ...