缓存字段、事务、存储引擎 InnoDB

回滚代码

rollback;

缓存字段

假设一个博客blog包含多个评论comments
如何获取博客的评论数

  • select count(id)from comments where blog_id=8这样太慢了
  • 可不可以在blog表上加一个comment_count字段
  • 每次添加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的索引

你可能感兴趣的:(缓存字段、事务、存储引擎 InnoDB)