Database学习 - mysql 数据库 索引
索引
索引在mysql 中也叫 '键',是存储引擎用来快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.
索引优化应该是对查询性能优化最有效的手段了.索引能够轻易将查询性能提高好几个数量级.索引相当于字段的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页查询
索引的特点:
创建与维护索引会消耗和很多时间与磁盘空间,但查询速度大大提高.
索引操作 - 建表创建索引
创建表时
语法:
create table 表名(
字段名1 数据类型 [完整性约束条件....],
字段名2 数据类型 [完整性约束条件....],
[ UNIQUE | FULLTEXT | SPATLAL ] index | key
[索引名] (字段名[(长度)] [ASC | DESC])
);
普通创建索引示例:
CREATE TABLE table1(
id int,
name varchar(20),
index index_name (name)
);
唯一索引示例:
CREATE TABLE table1(
id int,
name varchar(20) unique,
unique index index_name (name)
);
全文索引示例:
CREATE TABLE table1(
id int,
name varchar(20) unique,
fulltext index index_name (name)
);
多列索引示例:
CREATE TABLE table1(
id int,
name varchar(20) unique,
index index_name (id,name)
);
索引操作 - 添加索引
语法:(CREATE 方式)
CREATE [UNIQUE | FULLTEXT | SPATAL ] INDEX 索引名 ON 表名 (字段名[(长度)] [ ASC | DESC ]) ;
语法:(LATER TABLE 方式)
ALTER TABLE 表名 ADD [UNIQUE | FULLTEXT | SPATAL ] INDEX 索引名(字段名[(长度)] [ ASC | DESC ]) ;
方式1
CREATE INDEX index_name on test1(name); 方式2
ALTER TABLE test1 ADD UNIQUE INDEX index_name(name);
索引操作 - 删除索引
语法:DROP INDEX 索引名 on 表名
DROP INDEX index_name on test1;
DROP INDEX 2 on test2; //test2 表中的第2个字段
Database学习 - mysql 数据库 索引的更多相关文章
- Database学习 - mysql 数据库 表操作
mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...
- Database学习 - mysql 数据库 事务操作
事务 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 数据库开启事务命令: start transaction 开启事务 rollback 回滚事务,即撤销指定的 ...
- Database学习 - mysql 数据库 多表/复合/子 查询
多表查询 多表查询,基本规则,通过两表有关联字段的进行条件匹配查询 内连接查询 方式一: SELECT 查看字段名[,查看字段名] FROM 一表名,二表名 WHERE 一/二表.字段 = 一/二表. ...
- Database学习 - mysql 数据库 外键
外键 外键约束子表的含义:如果在父表中赵达不到候选键,则不允许在子表上进行insert/update 外键预约对父表的含义:在父表上进行update/delete以更新或删除子表中有一条或多条对应匹配 ...
- Database学习 - mysql 数据库 数据操作
mysql数据操作 查询语法 select * | field1,field1 ... from 表名 where 条件 group by 字段 having 筛选 order by 字段 limit ...
- 重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化
重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化 一:Mysql原理与慢查询 MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能 ...
- 重新学习MySQL数据库4:Mysql索引实现原理
重新学习Mysql数据库4:Mysql索引实现原理 MySQL索引类型 (https://www.cnblogs.com/luyucheng/p/6289714.html) 一.简介 MySQL目前主 ...
- 重新学习Mysql数据库4:Mysql索引实现原理和相关数据结构算法
本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...
- 重新学习MySQL数据库3:Mysql存储引擎与数据存储原理
重新学习Mysql数据库3:Mysql存储引擎与数据存储原理 数据库的定义 很多开发者在最开始时其实都对数据库有一个比较模糊的认识,觉得数据库就是一堆数据的集合,但是实际却比这复杂的多,数据库领域中有 ...
随机推荐
- std::shared_ptr 和普通指针的转换
相互转化见示例 struct test { int num; string name; }; test* pTest = new test(); std::shared_ptr<test> ...
- BZOJ1069 SCOI2007最大土地面积(凸包+旋转卡壳)
求出凸包,显然四个点在凸包上.考虑枚举某点,再移动另一点作为对角线,容易发现剩下两点的最优位置是单调的.过程类似旋转卡壳. #include<iostream> #include<c ...
- MT【214】焦点弦长公式
已知椭圆焦点为$F_1(-1,0),F_2(1,0)$,且椭圆与直线$y=x-\sqrt{3}$相切,求(1)椭圆的方程(2)过$F_1$作两条相互垂直的直线$l_1,l_2$与椭圆相交于$P,Q,M ...
- 【 Gym - 101138J 】Valentina and the Gift Tree(树链剖分)
BUPT2017 wintertraining(15) 4 D Gym - 101138J 数据 题意 n个节点的一棵树,每个节点的权值为g,q个询问,树上的节点U-V,求U到V的路径的最大子段和. ...
- Python解惑:整数比较
在 Python 中一切都是对象,毫无例外整数也是对象,对象之间比较是否相等可以用==,也可以用is.==和is操作的区别是: is比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对 ...
- 【BZOJ1823】[JSOI2010]满汉全席(2-sat)
[BZOJ1823][JSOI2010]满汉全席(2-sat) 题面 BZOJ 洛谷 题解 很明显的\(2-sat\)模板题,还不需要输出方案. 对于任意两组限制之间,检查有无同一种石材要用两种不同的 ...
- 洛谷 P2300 合并神犇 解题报告
P2300 合并神犇 题目背景 loidc来到了NOI的赛场上,他在那里看到了好多神犇. 题目描述 神犇们现在正排成一排在刷题.每个神犇都有一个能力值p[i].loidc认为坐在附近的金牌爷能力参差不 ...
- Java NIO -- 阻塞和非阻塞
传统的 IO 流都是阻塞式的.也就是说,当一个线程调用 read() 或 write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务.因此,在完成网络通信进行 IO操作 ...
- CF724F Uniformly Branched Trees
CF724F Uniformly Branched Trees 有根树可以统计.无根树难以统计.因为可以换根. 所以不让换根:只要两个无根树在重心位置不同构,就一定不同构 每个本质不同的树在重心位置统 ...
- 洛谷P1044 栈
之前看这题还是一头雾水,现在看:啊啊啊lydnb! 思考了一段时间,发现可以用DP. 令f[i]表示有i辆车时的方案数. 我一开始考虑的是在后面加车,可是这样搞不出状态转移方程来. 然后我考虑从前面加 ...