回滚代码
rollback;
缓存字段
假设一个博客blog包含多个评论comments
如何获取博客的评论数
-
select count(id)from comments where blog_id=8
这样太慢了 - 可不可以在blog表上加一个
comment_coun
t字段 - 每次添加
comment
则+1 - 每次删除
comment
则-1 - 可以的
事务
有些操作必须一次完成
- 用户评论之后,要做两件事情
- 第一步,在comments表新增记录
- 第二步,在blogs表将对应的 comment_count+1
- 如果第一步执行了,第二步没有执行怎么办
- 数据就乱了
使用事务
菜鸟的教程不错
start transaction;
语句1;语句2;语句3;
commit;
只要有一句出错,则全都不生效。
MySQL存储引擎
命令SHOW ENGINES;
常见的
- InnoDB-默认,目前版本是新版InnoDB
- MyISAM-拥有较高的插入、查询速度,但不支持事务
- Memory-内存中,快速访问数据
- Archive-只支持insert和select
InnoDB
InnoDB是事务型数据库的首选,支持事务、遵循ACID、支持行锁和外键
索引
语法
CREATE UNIQUE INDEX index1 ON users(name(100));
show index in users;
- 菜鸟的教程不错,有兴趣可以看看
用途
提交搜索效率
-
where xxx>1001
那么我们可以创建xxx的索引 -
where xxx>100 and yyy>200
,创建xxx,yyy的索引