MySQL DAY 05 索引&事务

MySQL DAY 05 重点知识总结 索引&事务

一 索引

  1. 索引介绍
    索引就相当于书的目录 我们查取某个数据的时候 如果不使用索引 将会从第一条数据进行匹配 匹配到数据的最后一个 每一个数据都会进行判断 表越大 花费的时间越多 那么会一定程度上降低查找的速度 索引有利于快速找出某个列的特定值的行
    当然 索引也不宜过多 索引越多的写入 修改的速度就会月满 因为写入修改数据时 也要修改索引
    在MySQL中 所有数据类型的列都可以被索引 常用的储存引擎有InnoDB 和 MyISAM ,这两种都支持每个表创建16个索引 .这种数据及结构能让查找数据 书怒访问 插入数据以及删除的操作都在对数时间内完成
  2. 索引分类
    1. 普通索引(index): 最基本的索引 没有任何限制
    2. 唯一索引(unique): 某一行启用了唯一索引 则不准许这一列的行数据有重复的值 针对这一列的每一行数据都要求事唯一的
    3. 主键索引(primary key): 它是一种特殊的索引 不允许有空值 一般是在建表的时候同时创建主键索引 常用于用户ID 类似于书中的页码
    4. 全文索引: 对于需要全局搜索的数据 进行全文索引
  3. 查看当前文档索引
    示例说明: 查看user表的索引结构
# 基本语法
	show index from tablename;
# 索引
	show index from user\G;
	# 这个地方\G 是格式化输出 用文字表示出来
  1. 普通索引
# 基本语法
	alter tableadd index(字段)
# 示例
	alter table money add index(username);
# 示例说明
	# 为money表的username字段增加索引
  1. 唯一索引
# 基本语法
	alter tableadd unique(字段)
# 示例
	alter table money add unique(username);
  1. 主键索引
# 基本语法
	alter tableadd primary key(字段)
# 示例
 	alter table money add primary key(username)
  1. 创建表时申明索引
primary key 
index
unique

create table user(
	id int auto_increment,
	name varchar(20),
	primary key(id),
	unique(name)
);
  1. 删除索引
# 基本语法
	alter table table_name index index_name
# 示例
	alter table money drop index age;

二 事务

  1. 事务控制语言
    我们每执行一条SQL语句 每执行一组SQL语句 我们都可以称之为事务
    如果一组SQL语句中 某一个SQL语句失败了 称为整个事务的失败 因此出现这种情况的时候必须要恢复到正常的清空才能没有问题
    如果有了事务 就可以避免该事情的发生
    事务可以看作是一个容器 将多条语句放入该容器 最后只要一个命令行 来决定其中的所有语句是否执行

  2. 事务的四大特征 [记下来]
    事务必须满足以下四个条件

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

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

# 1. 开始事务
start transaction 
# 2. 把表中的信息进行更改
update money set age=18 where name='张三';
select * from money;
# 3.如果执行到这里事务完美执行 并没有报错 就可以:
commit;
# 4.更新后如果出现问题 发现事务我不想执行了或者其他原因想撤销
rollback;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值