MySQL 索引

1.sql索引

mysql索引分为单列索引(主键索引(不允许有空值)、唯一索引、普通索引)和组合索引

2.索引的创建

一.单列索引

(1)主键索引:
ALTER TABLE table_name ADD PRIMARY KEY (‘column’)
(2)唯一索引
ALTER TABLE table_name ADD UNIQUE ('column‘’)
(3) 普通索引
ALTER TABLE table_name ADD INDEX index_name (‘column’)

二、组合索引

ALTER TABLE table_name ADD INDEX index_name(‘column1’,‘column2’,column3’)

3.索引的优点

大大减少服务器需要扫描的数据行数

4.索引的优化

一、建立聚集索引

二、最左前缀原则

https://blog.csdn.net/SkySuperWL/article/details/52583579?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control

三、长数据建立前缀索引

MySQL前缀索引和索引选择性
https://www.cnblogs.com/balfish/p/9003794.html

5.mysql的表类型:InnoDB和MyISAM

1,MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持等高级处理,往往被认为只适合小项目;而InnoDB类型支持事物,以及外部键和行级锁等高级数据库功能。

2,MyISAM的索引和数据分开,每个MyISAM在磁盘上存储成三个文件。第一个文件的名字为表名,扩展名为文件类型:
.frm文件存储表定义;
.MYD (MYData)文件为数据文件;
.MYI (MYIndex)为索引文件;
而InnoDB表基于磁盘空间,大小只受限于操作系统文件的大小,一般为2GB。

3.InnoDB不支持FULLTEXT类型的索引。
4.AUTO_INCREMENT类型的字段,在InnoDB中必须包含只有该字段的索引,而在MyISAM表中则可以喝其他字段一起组成联合索引。
5.MyISAM一般是非聚集索引,InnoDB是聚集索引,InnoDB中索引的组织形式是B+树,非叶子节点存key,叶子节点存key+data,叶子节点之间指针连通
v
在这里插入图片描述

6.聚集索引和非聚集索引

聚集索引:在data存放的是数据页
非聚集索引:data中存放的是主键的值,得到主键后还需要在聚集索引上再查询一次
在效率方面最好使用的是聚集索引,给表设定唯一的主键。在数据索引存储有序的情况下可以大大提高效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值