使用事务保证数据完整性
1.MySQL的事务处理:
事务就是将一组SQL语句放在同一批次内执行
如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行
注:MySQL事务处理只支持InnoDB和BDB数据表类型
2.事务的ACID原则
原子性、一致性、隔离性、持久性
3.MySQL的事务实现方法:
set autocommit
eg:set autocommit=0; #关闭自动提交模式
set autocommit=1; #开启自动提交模式
注意:MySQL中默认是自动提交
使用事务时应先关闭自动提交
i.start transaction :开始一个事务,标记事务的起始点
ii.commit :提交一个事务给数据库
iii.rollback :将事务滚回,数据回到本次事务的初始状态
iv.set autocommit :还原MySQL数据库的自动提交
创建和使用索引
1.数据库索引
作用:提高查询速度
确保数据的唯一性
可以加速表和表之间的连接,实现表与表之间的参照完整性
使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间
全文检索字段进行搜索优化
分类:主键索引(primary key)
唯一索引(unique)
常规索引(index)
全文索引(fulltext)
2.主键索引
主键:某一个属性组能唯一标识一条记录
特点:最常见的索引类型
确保数据记录的唯一性
3.唯一索引
作用:避免同一个表中某数据列中的值重复
与主键索引的区别:主键索引只能有一个
唯一索引可有多个
4.常规索引
作用:快速定位特定数据
注意:index和key关键字都可设置常规索引
应加在查找条件的字段
不宜添加太多常规索引,影响数据的插入、删除和修改操作
5.全文索引
作用:快速定位特定数据
注意:只能用于MyISAM类型的数据表
只能用于char、varchar、text数据列类型
适合大型数据集
6.管理索引
创建索引:创建表时添加
建表后追加:alter table 表名 add 索引类型(数据列名)
删除索引:drop index 索引名 on 表名
alter table 表名 drop index 索引名
alter table 表名 drop primary key
查看索引:show index(或keys)from 表名
7.索引准则
索引不是越多越好
不要对经常变动的数据加索引
小数据量的表建议不要加索引
索引一般加在查找条件的字段