手把手教你mysql(十)索引
手把手教你mysql(十)索引
一:索引的引入
索引定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度。
类似于图书的目录,方便快速定位,寻找指定的内容,如一本1000页的书,如果没有目录,你想要知道指定的内容,必须要1页1页翻过去,是不是很浪费时间?
二:索引的优缺点
优点:提高查询数据的速度。
缺点:创建和维护索引的时间增加了。
三: 索引实际应用
T_teacher表中有100000条数据,是我利用Hibernate插的,大家可以自己用jdbc插一下或者用后面的知识创建一个存储过程来插,感兴趣的可以先百度预习下。
Mysql>Select count(*) from t_teacher;
Mysql>Select * from t_teacher where name=’老师99999’; #我这的速度是79毫秒,这边用name不能用id,因为id是主键
Mysql>CREATE INDEX `index_name` ON `t_teacher`(`name`);#在name列上创建索引
Mysql>Select * from t_teacher where name=’老师99999’;#再次查找,速度几乎是0毫秒,可见加了索引的速度是多么的快.
四:索引分类
1: 普通索引(常用)
这类索引可以创建在任何数据类型中。
2: 唯一性索引(常用)
使用UNIQUE 参数可以设置,在创建唯一性索引时,限制该索引的值必须是唯一的,主键默认就是唯一的。
3: 全文索引
使用FULLTEXT 参数可以设置,全文索引只能创建在CHAR,VARCHAR,TEXT 类型的字段上。主要作用就是提高查询较大字符串类型的速度;只有MyISAM 引擎支持该索引,Mysql 默认引擎不支持。
4: 单列索引
在表中可以给单个字段创建索引,单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引。
5: 多列索引
多列索引是在表的多个字段上创建一个索引。
6: 空间索引
使用SPATIAL 参数可以设置空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率;只有MyISAM 引擎支持该索引,Mysql 默认引擎不支持。
五:创建索引
5.1 创建表的时候创建索引
CREATE TABLE 表名(属性名数据类型[完整性约束条件],
属性名数据类型[完整性约束条件],
....
属性名数据类型
[UNIQUE | FULLTEXT | SPATIAL ] INDEX| KEY
[别名] (属性名1 [(长度)] [ASC | DESC])
);
这边没有指定索引的名字,使用mysql默认的索引名
5.2 在已经存在的表上创建索引
CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名
ON 表名(属性名[(长度)] [ ASC | DESC]);
Mysql>CREATE TABLE `t_test2`(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(30),
PASSWORD VARCHAR(10)
);
Mysql>CREATE INDEX `index_username` ON `t_test2`(`username`);
5.3 用ALTER TABLE 语句来创建索引
ALTER TABLE 表名ADD [ UNIQUE | FULLTEXT | SPATIAL ] INDEX
索引名(属性名[(长度)] [ ASC | DESC]);
Mysql>ALTER TABLE `t_test2`
ADD UNIQUE INDEX `index_password`(`password`);
六: 删除索引
DROP INDEX 索引名ON 表名;
Mysql>DROP INDEX `index_username` ON `t_test2`;
七: 总结
今天为大家带来了索引的相关内容,大家好好练习消化下,下节为大家带来视图的相关内容,谢谢大家!
手把手教你mysql(十)索引的更多相关文章
- 手把手教你看MySQL官方文档
前言: 在学习和使用MySQL的过程中,难免会遇到各种问题.不知道当你遇到相关问题时会怎么做,我在工作或写文章的过程中,遇到不懂或需要求证的问题时通常会去查阅官方文档.慢慢的,阅读文档也有了一些经验, ...
- 《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- 《手把手教你》系列技巧篇(十六)-java+ selenium自动化测试-元素定位大法之By xpath下卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)
1.简介 在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助. 2.select 下拉框 2.1Select ...
- 《手把手教你》系列技巧篇(五十)-java+ selenium自动化测试-字符串操作-上篇(详解教程)
1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...
- 手把手教你分析解决MySQL死锁问题
在生产环境中如果出现MySQL死锁问题该如何排查和解决呢,本文将模拟真实死锁场景进行排查,最后总结下实际开发中如何尽量避免死锁发生. 一.准备好相关数据和环境 当前自己的数据版本是8.0.22 mys ...
- 《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
1.简介 自动化测试中如何输出日志文件.任何软件,都会涉及到日志输出.所以,在测试人员报bug,特别是崩溃的bug,一般都要提供软件产品的日志文件.开发通过看日志文件,知道这个崩溃产生的原因,至少知道 ...
- 手把手教你在Ubuntu上分别安装Nginx、PHP和Mysql
手把手教你在Ubuntu上分别安装Nginx.PHP和Mysql
随机推荐
- 在CAD中怎么画圆形视口的详细说明
方法如下:在布局下画一个合适的圆,然后:命令: _-vports指定视口的角点或[开(ON)/关(OFF)/布满(F)/消隐出图(H)/锁定(L)/对象(O)/多边形(P)/恢复(R)/2/3/4]& ...
- 十进制和n进制的转换(10进制转换为36进制)
答案如下: void Convert() { map<int ,string> maps; maps[0]="0"; maps[1]="1"; ma ...
- Pyqt5 实时图像滚动
实时图像 写了一个关于实时图像滚动显示的例子,做个记录. 滚动算法: 难点: 将内存数据绘制到界面,需要用到QImage和QPixmap,使用QImage转换一下,具体参见代码.这个费了好大劲才弄出来 ...
- Entity Framework 实践系列 —— 搞好关系 - 两情相悦(双向一对一)【转载】
Entity Framework 实践系列 —— 搞好关系 - 两情相悦(双向一对一) 自从搞好了单向一对一关系,装满代码的心中塞进了挥之不去的情丝 —— 单相思.谁都知道音乐世界离不开情感,可谁又知 ...
- UFLDL教程(五)之self-taught learning
这里所谓的自学习,其实就是利用稀疏自编码器对无标签样本学习其特征 该自学习程序包括两部分: 稀疏自编码器学习图像特征(实现自学习)---用到无标签的样本集 softmax回归对样本分类---用到有标签 ...
- www.nygwkt.com
南京宁阳制冷设备维修有限公司是专业从事厨房空调,http://www.nygwkt.com岗位空调制冷设备设计.制造.安装.改造.维修.保养的专业化公司.在南京享有很高的客户评论. 我们对南京宁阳制冷 ...
- HTML文档模式与盒模型
HTML文档根据文档顶部的doctype声明来决定渲染模式,有标准模式(Standards Mode)与怪异模式(Quirks mode,或叫做混杂模式)两种模式. IE5及以前默认总是表现为怪异模式 ...
- Data guard RAC配置【二】
2. 利用duplicate配置容灾端 1.配置容灾端oracle用户的环境变量,这里以192.166.1.61为例. export ORACLE_BASE=/opt/oracle export OR ...
- bzoj AC 50 庆祝~~
No. 1050 Solved 50 Submit 212 AC 60 PE 6 WA 88 TLE 13 MLE 5 OLE 2 RE 29 CE 9 10001002100310041005 10 ...
- BLE开发的各种坑
这段时间在做低功耗蓝牙(BLE)应用的开发(并不涉及蓝牙协议栈).总体感觉 Android BLE 还是不太稳定,开发起来也是各种痛苦.这里记录一些杂项和开发中遇到的问题及其解决方法,避免大家踩坑.本 ...