其他分享
首页 > 其他分享> > 孤尽班第二次课

孤尽班第二次课

作者:互联网

孤尽班第二次课

数据库设计的规范

表 字段 命名

建表强制规约

数据类型
– 小数类型为 decimal

建表推荐规约

  1. 表的名称最好遵循 业务名称表饿 作用
  2. 库名于应用名称尽量一致
  3. 如果修改字段含义或字段表示的状态追加时,需要及时更新字段解释
  4. 字段允许适当冗余,以提高查询性能,但必须数据一致
  5. 单表行数超过 500 万行 或者单表容量超过 2 GB ,才推荐进行分库 分表

索引规约

索引占空间 和 表得比率 是 1 :1
持久性 和 有序性

索引的分类

  1. 存储形式
  2. 非聚合索引
    数据约束
  3. 主键所引
  4. 唯一索引
  5. 非唯一索引

索引类的数量
6. 单行索引
7. 组合索引
Innodb 可以创建的索引
8. 逐渐索引
9. 唯一索引
10.普通索引
不可以 创建的索引- 》 覆盖索引

索引的数据结构 二叉查找树

索引btree 以16k为单位

键值: 即表中记录的主键
指针: 存储 子节点 地址信息
数值: 即表记录中除主键外的数据

索引的数据结构:b+tree

键值, 即表中记录的主键
指针,存储子节点地址信息
数据, 即表记录中除主键外的数据

索引名称规则

索引命名

创建索引规约

  1. 有唯一特性的字段必须建成唯一索引
  2. 在varchar 字段上建立索引时,必须指定索引长度
  3. 建组合索引的时候,区分度最高的在最左边

创建索引避免如有如下极端误解

  1. 索引宁缺勿滥(认为一个查询就要建 一个索引)
  2. 吝啬索引创建 (认为创建所应会消耗空间,严重拖慢记录的更新以及行放入新增速度)
  3. 抵制唯一索引 认为 唯一索一律 需要通过应用层 通过先查后插方式解决

SQL 规约

优化SQL 语句的要点
Explain 的使用指南

SQL 规范- 索引

  1. 注意字段类型 【防止因字段类型不同造成的隐式转化,导致索引 失效】
  2. 利用覆盖索引【利用覆盖索引来技能型查询操作,避免回表】
  3. 利用有序性 如果有order by d的场景,请注意利用索引的有序性
  4. 禁模糊 【页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决】

超过三个表 禁止用 join on

SQL 规约 - count

SQL 规则- 分页

  1. 若count 为 0 【 分页查询逻辑时,若count 为 0 应直接返回】
  2. 优化超多分页场景【利用延迟关联或者子查询优化超多分页场景】

SQL 规则- null 值

使用ISNULL() 来判断是否为NULL 值

SQL 性能优化的目标

Explain 工具使用技巧
达到range 级别
Explain+ 覆盖索引
Explain + index 全索引扫描
Expain + filesort

ORM 映射规约

优化SQL 语句的要点

Explain 的 使用指南

ORM 映射的避坑 指南

ORM 映射规约

  1. 在表查询中, 一律不要使用“ 作为查询的字段列表”
  2. POJO 类的布尔属性 不能加 is , 而数据库字段必须加 “is_”
  3. 查询返回结果都需要 使用 ResultMap 映射
  4. 不要使用${}
  5. 不要使用 MyBatis 自带的queryForList 方法
  6. 不允许 直接使用 HashMap 于 Hashtable 接受结果集
  7. 更新数据表记录时 必须 同时更新 update_time
  8. 不要 写一个 大而全的数据库更新接口

标签:count,规约,主键,索引,SQL,第二次,NULL,孤尽班
来源: https://blog.csdn.net/weixin_44681349/article/details/121022355