mysql总结10------索引☆
1.概念:索引是优化数据库查询速度的重要途径。
2.索引的类型:
<1>.普通索引:最基本的索引类型,没有唯一性之类的限制。
①单例索引:create index valIndex on t_tableA(val(20));
②多列索引:create index products_index on t_products(prod_name(20),prod_price);
说明:(1.)多列索引,同时查,索引生效。
(2.)只查prod_name(20),索引生效
(3.)只查prod_price,索引不生效
联合索引,以左边的为准,单独用左边的会生效,单独用右边的不会生效。
其实总结一下:以左边第一个或者所有会生效,其他的情况都不生效。
eg.(A,B,C)三个联合索引,A和ABC会生效,其他的情况下不生效。
<2>.唯一索引:和普通索引基本相同,但是所有的索引列只能出现一次,保持唯一性。
create unique index valIndex2 on t_tableB(val(20));
<3>.主键索引:主键索引是一种特殊的唯一索引,在建立主键时自动创建。
<4>.全文索引:语法同普通索引相同,就是可以在文本类型列上可以创建索引。
(全文索引可以在varchar或text类型上创建)
3.索引的缺点:
<1>.虽然索引大大提高了查询速度,但是会降低更新表的速度。
比如对表的insert、update、delete操作。
因为更新表时,mysql不仅仅要保存数据,还要保存索引文件。
<2>.建立索引会占用磁盘空间。如果在一个大表上创建了多种索引组合,索引文件会膨胀的很快。
4.注意事项:
<1>.索引是建立在常用的列上,比如你经常根据某一列(用户名,密码)去查数据
<2>.索引相当于字典前面的目录。
<3>.加不加索引要权衡一下是查询多,还是update,insert,delete多!!!
《4》并不是所有的表都适合加索引的!!
①记录少是不要加索引!
②每次查询的数据占总的数量很大时,不要加索引。
③多列索引:对查询频率高的列放在前面。
④数据库量很大,并且每次查询的数据占总量比较少时,加索引谁体会到明显的效率!!
本文转自韩立伟 51CTO博客,原文链接:http://blog.51cto.com/hanchaohan/926580,如需转载请自行联系原作者
mysql总结10------索引☆相关推荐
- 10 mysql选错索引
10 mysql选错索引 在mysql表中可以支持多个索引,有的sql不指定使用哪个索引,由mysql自己来决定,但是有时候mysql选错了索引,导致执行很慢. 例子 CREATE TABLE `t1 ...
- MySQL - 第10节 - MySQL索引特性
目录 1.索引的概念 2.认识磁盘 2.1.磁盘的结构 2.1.1.磁盘的整体结构 2.1.2.磁盘中的一个盘片 2.1.3.扇区的定位方式 2.1.4.操作系统与磁盘交互的基本单位 2.2.磁盘的随 ...
- mysql 第10章 索引
2015-10-24 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版 ...
- MySQL 如何创建索引?怎么优化?
2019独角兽企业重金招聘Python工程师标准>>> 索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本.MySQL在300万条记录左右性能开始逐渐下降,虽 ...
- PHP面试MySQL数据库的索引
你好,是我琉忆,PHP程序员面试笔试系列图书的作者. 本周(2019.3.4至3.8)的一三五更新的文章如下: 周一:PHP面试MySQL数据库的基础知识 周三:PHP面试MySQL数据库的索引 周五 ...
- mysql的覆盖索引原理_「Mysql索引原理(七)」覆盖索引
通常大家都会根据查询的WHERE条件来创建合适的索引,不过这只是索引优化的一个方面.设计优秀的索引应该考虑到整个查询,而不单单是WHERE条件部分.索引确实是一种查找数据的高效方式,但是MySQL也可 ...
- 论MySQL何时使用索引,何时不使用索引
索引: 使用索引可快速访问数据库表中的特定信息.索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(name)列.如果要按姓查找特定职员,与必须搜索表中的所有行相比,索 ...
- mysql5.6 函数索引_聊聊MySQL中的索引
关于MySQL中的索引使用 索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的SQL性能问题. 索引的存储分类: 1.B-Tree索引:最常见的索引类型,大部分引擎都支 ...
- 面试mysql中怎么创建索引_阿里面试:MySQL如何设计索引更高效?
有情怀,有干货,微信搜索[三太子敖丙]关注这个不一样的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. ...
- mysql 排序后 下一条记录_什么是MySQL InnoDB 二级索引的排序?|附实例详解
概述 今天主要给大家介绍了关于MySQL InnoDB 二级索引的排序的相关资料,通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 每个InnoDB表具有一个特殊的索引称为聚簇 ...
最新文章
- Google Colab使用教程
- C语言函数集(十五)
- python学习-文件的读写操作
- Blogger建立Blog部落格​​ - Blog透视镜
- 80岁COBOL码农:扶我起来,这个bug我会修!
- .net后台怎么提取html中的多个图片的绝对地址_SpringBoot中yml配置文件说明和一些常用配置项说明...
- linux下的dns服务器
- Linux防火墙iptables的策略
- SQL SERVER2000教程-第五章 处理数据 第二节 检索数据
- 网络流-最大流问题详解(C++实现)
- php连接mib库,常用的一些MIB以及对应的OID
- 2021-2027中国游戏开发工具市场现状及未来发展趋势
- window环境下Redies安装和服务启用
- 实用系列1 —— 视频中的语音转换成文字
- 微软跳上OpenID Bandwagon
- 项目管理师备考笔记:十大管理之范围管理
- 定理在数学中的简写形式_初一数学:定义、定理、公式、方法
- 人脸识别与美颜算法实战-基于机器学习的人脸识别
- 企业级负载均衡集群——lvs的DR模式(直接路由模式)详细说明
- 行为型:设计模式之访问者模式(二十三)