MySQL事务、索引、数据恢复和备份

MySQL的事务处理

比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

MySQL 事务主要用于处理操作量大,复杂度高的数据

只支持引擎为InnoDB和BDB的数据表

事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。

ACID 属性(事务必须具备的四个属性)

原子性

一个事务中的所有操作,要么全部完成,要么全部不完成,不会在中间某个环节结束

一致性

在事务开始之前和事务结束之后,数据库的完整性没有被破坏。

隔离性

防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。

持久性

事务处理结束后,对数据的修改就是永久的,即使系统故障也不会丢失。

set autocommit

set autocommit = 0;关闭自动提交模式

set autocommit = 1;开启自动提交模式(默认)

使用事务前应该先关闭自动提交(set autocommit = 0)

MySQL的事务实现方法

start transaction        开始事务

commit        提交事务

rollback        事务回滚,数据回到本次事务的初始状态

事务处理步骤

set autocommit = 0——start transaction——增删改等事务——commit /rollback ——set autocommit = 1

 数据库索引

提高查询速度

确保数据的唯一性

对全文检索字段进行搜索优化

主键索引(PRIMARY KEY)

确保数据记录的唯一性

确定特定数据记录在数据库中的位置

主键索引只能有一个

唯一索引(UNIQUE)

唯一索引可以有多个

避免同一个表中某数据列中的值重复

常规索引(INDEX)

快速定位特定数据

全文索引(FULLTEXT)

快速定位特定数据

只能用于引擎为myisam类型的数据表

只能用于类型为char,varchar,text的数据列

创建索引

alter table 表名 add 索引类型(数据列名)

create 索引名 on 表名 (列名)

删除索引

drop index 索引名 on 表名

alter table 表名 drop index 索引名

alter table 表名 drop paimary key

查看索引

show index(或keys) from 表名

索引准则

索引不是越多越好

不要对经常变动的数据加索引

小数据量的表建议不要加索引

索引一般应加在查找条件的字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值