MySQL基础-5 索引和事务

本文围绕MySQL展开,介绍了索引和事务相关知识。索引可加快数据查询,文中讲解了索引分类、查看、创建及删除方法,包括普通、唯一、主键索引等。事务方面,阐述了事务控制语言、四大特征(ACID),还说明了事务流程及使用,如开启、提交和回滚操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引

就和文件目录差不多,你点一下目录,就可以快速定位到你所点击目录的内容

MySQL必须从第1条记录开始然后读完整个表直到找出相关的行,表的数据越多,花费的时间就越多;

如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要查看所有数据。

1 索引分类

索引类型功能说明
普通索引最基本的索引,它没有任何限制
唯一索引某一列启用了唯一索引则不准许这一列的行数据中有重复的值。针对这一列的每一行数据都要求是唯一的 unique
主键索引它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引,常用于用户ID。类似于书中的页码 primary key
全文索引对于需要全局搜索的数据,进行全文索引

2 查看索引

基本语法:show index from tablename;

后面加个\G是为了便于查看;

示例:show index from user\G;

示例说明:查看user表的索引结构

3 普通索引

基本语法:alter table 表 add index(字段)

示例:alter table user add index(username);

示例说明:为user表的username字段增加索引

4 唯一索引

基本语法:alter table 表 add unique(字段)

示例:alter table user add unique(username);

示例说明:为user表的username字段增加唯一索引

5 主键索引

基本语法:alter table 表 add primary key(字段)

示例:alter table user add primary key(id);

示例说明:为user表的id字段增加主键索引

6 创建表时声明索引

创建表时可在创建表语句后加上对应的类型即可声明索引:

  • primary key(字段)
  • index (字段)
  • unique (字段)

被这些关键字所修饰的字段都可以作为索引使用

7 删除索引

基本语法:alter table table_name drop index index_name(就是你所设置索引的字段名);

示例:alter table user drop index age;

示例说明:为user表删除age索引

事务

1 事务控制语言

事务可以看作是一个“容器”,将多条语句,放入该容器,最后,只要一个命令行,来决定其中的所有语句是否“执行”

2 事务的四大特征

事务的四大特性(ACID):

  • 原子性(Atomicity) 事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行
  • 一致性(Consistency)事务应确保数据库的状态从一个一致状态转变为另一个一致状态
  • 隔离性(Isolation)多个事务并发执行时,一个事务的执行不应影响其他事务的执行
  • 持久性(Durability)已被提交的事务对数据库的修改应该永久保存在数据库中

3 事务的流程

执行语句说明
start transaction执行开始事务命令后,下面将进入事务模式.
update、delete、insert 操作在事务执行后,这些操作只在内存状态下进行,而不是在物理状态下
commit在事务执行完成后,确认执行无误且成功,就可以使用commit把内存中执行的结果,提交到物理内存中
rollback如果在事务执行过程中,发生了错误,则可以使用rollback命令回滚到上一个事务操作

4 事务的使用

在mysql中默认一条sql语句一个事务因此,如果需要开启事务模式的话

使用 start transaction开头,开启事务模式

使用 commit 语句执行后,才能真正生效(确认操作结果无误之后就提交)

使用 rollback 语句进行回滚(操作结果有误就回滚)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值