Node全解08_01sql进阶

sql进阶

sql 必会的内容

缓存字段

假设一个博客包含多个评论 comments

如何获取评论数

  • select count(id)form comments where blob_id = 9 这样太慢了
  • 可以在 blob 表添加一个 comment_count 字段
  • 每次添加 comment 则 +1
  • 每次删除 comment 则 -1

事务

1
2
3
start transaction;
语句1;语句2;语句3;
commit;

只要一句出错,则全部不生效

MySQL 存储引擎

  • SHOW ENGINEA;

常见的

  • InnoDB 默认
  • MyISAM 拥有较高的插入,查询速度 不支持事务
  • Memory 在内存中,快速访问数据
  • Archive 只支持 insert 和 select

InnoDB

  • 它是事务型数据库的首选,支持事务,遵循ACID、支持行锁和外键

索引

语法

  • create unique index index1 on users(name(100))
    • 唯一性的加 unique 反之去掉
    • users(name(100)) 表名(字段名(长度))
  • show index in users;

用途

  • 提高搜索效率
  • where xxx>100 那么我们可以创建 xxx的索引
  • where xxx>100 and yyy>200 创建 xxx,yyy的索引