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

单列索引,复合索引。

复合索引(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. python pbr 打包

    在之前学习stevedore时,在setup.py中使用setuptools打包发布了代码,然后调用代码中的实例化对象.参考我的文章 https://www.cnblogs.com/CaesarLin ...

  2. extJS 动态引用加载(转)

    ExtJs有庞大的类型库,很多类可能在当前的页面根本不会用到,我们可以引入动态加载的概念来即用即取.这些代码都要写在Ext.onReady外面. 1.动态引用外部Js //加载配置可用 Ext.Loa ...

  3. SpringCloud报错:com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

    启动SpringCloudEureka 报错:com.netflix.discovery.shared.transport.TransportException: Cannot execute req ...

  4. 五 shutil模块

    高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 1 import shutil 2 3 shuti ...

  5. JAVA8 ARRAY、LIST操作 汇【5】)- JAVA8 LAMBDA LIST统计(求和、最大、最小、平均)

    public class Apple { private Integer id; private String name; private BigDecimal money; private Inte ...

  6. iOS 组件化流程详解(git创建流程)

    [链接]组件化流程详解(一)https://www.jianshu.com/p/2deca619ff7e

  7. sqlserver编号

    select ROW_NUMBER() OVER (ORDER BY 字段 DESC) AS rid,* from 表名

  8. centos更换yum源为aliyun源

    国外的yum源由于众所周知的GFW原因,有的被墙,有的很慢,阿里云依靠强大的技术优势建立了国内的开源镜像.阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ 第一步: ...

  9. SparseArray

    使用SparseArray更加节省内存空间的使用,SparseArray也是以key和value对数据进行保存的.使用的时候只需要指定value的类型即可.并且key不需要封装成对象类型.   Has ...

  10. eclipse导入项目以后,内容没有错误,项目上却有个小红叉?

    对于上面的错误,应该如何解决?