mysql 索引代码_mysql索引
mysql索引的四种类型:主键索引、唯一索引、普通索引和全文索引。
主键索引:
主键是一种唯一性索引,但它必须指定为PRIMARY KEY,每个表只能有一个主键。
唯一索引:
索引列的所有值都只能出现一次,即必须唯一,值可以为空。
普通索引 :
基本的索引类型,值可以为空,没有唯一性的限制。
全文索引:
全文索引的索引类型为FULLTEXT。全文索引可以在varchar、char、text类型的列上创建。可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或者CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。MyISAM支持全文索引,InnoDB在mysql5.6之后支持了全文索引。
索引的机制
为什么我们添加完索引后查询速度为变快?
传统的查询方法,是按照表的顺序遍历的,不论查询几条数据,mysql需要将表的数据从头到尾遍历一遍
在我们添加完索引之后,mysql一般通过BTREE算法生成一个索引文件,在查询数据库时,找到索引文件进行遍历(折半查找大幅查询效率),找到相应的键从而获取数据
3.常见问题
多大的数据量下建索引会有性能的差别?
什么样的情况下该对字段建索引?
4.解决方案
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
5.编码实战
让我们来实际操作一下。
6.扩展思考
为什么加索引后会使写入、修改、删除变慢?
索引能让数据库查询数据的速度上升, 而使写入数据的速度下降,原因很简单的, 因为平衡树这个结构必须一直维持在一个正确的状态, 增删改数据都会改变平衡树各节点中的索引数据内容,破坏树结构, 因此,在每次数据改变时, DBMS必须去重新梳理树(索引)的结构以确保它的正确,这会带来不小的性能开销,也就是为什么索引会给查询以外的操作带来副作用的原因。
7.参考文献
https://www.cnblogs.com/aspwebchh/p/6652855.html
8.更多讨论
1.like 不能用索引?
尽量减少like,但不是绝对不可用,“xxxx%” 是可以用到索引的,
想象一下,你在看一本成语词典,目录是按成语拼音顺序建立,查询需求是,你想找以 “一"字开头的成语(“一%”),和你想找包含一字的成语(”%一%")
除了like,以下操作符也可用到索引:
,>=,BETWEEN,IN
<>,not in ,!=则不行
2.多列查询该如何建索引?
一次查询只能用到一个索引,所以 首先枪毙 a,b各建索引方案
a还是b? 谁的区分度更高(同值的最少),建谁!
当然,联合索引也是个不错的方案,ab,还是ba,则同上,区分度高者,在前
3.一次查询能用多个索引吗?
不能
BY : 西安分院 赵立鼐
视频链接:https://v.qq.com/x/page/u0717zp67w3.html
ppt:https://it-xzy.github.io/JAVA-NEW/20180925-A-java-1.html#/
---------------------
作者:zln313
来源:CSDN
原文:https://blog.csdn.net/zln313/article/details/82722200
mysql 索引代码_mysql索引相关推荐
- mysql范围条件_MySQL 索引及优化实战(一)
mysql 随着系统用户量的不断增加,MySQL 索引的重要性不言而喻,对于后端工程师,只有在了解索引及其优化的规则,并应用于实际工作中后,才能不断的提升系统性能,开发出高性能.高并发和高可用的系统. ...
- mysql精讲_Mysql 索引精讲
开门见山,直接上图,下面的思维导图即是现在要讲的内容,可以先有个印象- 常见索引类型(实现层面) 索引种类(应用层面) 聚簇索引与非聚簇索引 覆盖索引 最佳索引使用策略 1.常见索引类型(实现层面) ...
- mysql索引选择_MySQL 索引选择原则
目的 MySQL查询优化器是基于代价(cost-based)的查询方式.因此,在查询过程中,最重要的一部分是根据查询的SQL语句,依据多种索引,计算查询需要的代价,从而选择最优的索引方式生成查询计划. ...
- mysql 索引 二_MySql索引(二)
所有MySQL列类型可以被索引.根据存储引擎定义每个表的最大索引数和最大索引长度. 所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节.大多数存储引擎有更高的限制. 索引的存储类型目前只 ...
- mysql 索引方法_mysql索引方式
/* 所有MySQL列类型可以被索引.根据存储引擎定义每个表的最大索引数和最大索引长度. 所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节.大多数存储引擎有更高的限制. 索引的存储类型 ...
- mysql 子查询索引失效_mysql 索引失效的情况
索引失效的几种情况 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 2.对于多列索引,不是使用 ...
- mysql gis index 索引原理_Mysql 索引原理及优化
Mysql 索引原理及优化 什么是索引 为什么需要索引? 索引是数据表种一个或者多个列进行排序的数据结构 索引能够大幅提升检索速度 创建.更新索引本身也会耗费空间和时间 查找结构进化史 线性查找:一个 ...
- mysql多索引结构_MySQL 索引结构
谈到 MYSQL 索引服务端的同学应该是熟悉的不能再熟悉,新建表的时候怎么着都知道先来个主键索引,对于经常查询的列也会加个索引加快查询速度.那么 MYSQL 索引都有哪些类型呢?索引结构是什么样的呢? ...
- mysql的索引优化_MySQL索引优化与分析(重要)
建表SQL CREATE TABLE staffs ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR (24) NULL DEFAULT '' COM ...
最新文章
- eShopOnContainers 知多少[8]:Ordering microservice
- 利用Use Case为系统行为建模(2)
- 《Python和Pygame游戏开发指南》——1.12 图书中的文本折行
- Treemap and Treeset java 实现
- java中jsp页面foreach遍历输出的使用
- windows 下Android的开发准备
- CentOS 修改IP地址, DNS, 网关
- 对C++继承,封装,多态的理解
- spring3.1声明式事务管理
- VSCODE: 快速生成html框架
- Linux下正则表达式匹配性能
- SurfaceView 实现 转盘抽奖
- IT桌面运维常识系列 - MDT
- 朴素贝叶斯python实现预测_Python朴素贝叶斯预测.PDF
- mysql analyze_技术分享 | MySQL EXPLAIN ANALYZE
- 微信公众号运营,如何有效的推广
- CF小组训练赛 Holiday 19
- java基础 第一章 对象入门
- sa387gr11cl2相当于什么材料,sa387gr11cl2对应国内材质
- Java web项目利用POI导出EXCEL表格