@@ -36,13 +36,16 @@ count(\*) :遍历整张表,不取值,直接加1,mysql优化器做的优化
3636sort_buffer_size=2097152 # 排序可使用的内存
3737max_length_for_sort_data=1024 # 每一行的数据长度
3838` ` `
39- ` ` `
39+
40+ ` ` ` shell
4041排序过程:
41421. 初始化` sort_buffer` ,确定排序字段,如果选取的字段小于` max_length_for_sort_data` 的长度,就取出所有字段进行全字段排序,否则进行rowid排序
42432. 根据条件,选择满足条件的行的字段,放入` sort_buffer`
43443. 重复步骤2
44454. 对` sort_buffer` 中数据按照排序字段进行排序,如果数据大于` sort_buffer_size` ,需要使用外部排序,归并排序
4546
47+ ` ` `
48+
4649` ` ` sql
4750# 排序语句
4851select city,name,age from t where city=' 杭州' order by name limit 1000 ;
@@ -134,8 +137,11 @@ revoke all privileges on *.* from 'ua'@'%';
134137
1351381. 如果明确知道只有一条结果返回,limit 1能够提高效率,明确告诉数据库,让它主动停止游标移动
1361392. 避免全表扫描
137- 3. 只返回需要的列,能够大大的节省数据传输量,与数据库的内存使用量
138- 4. 项目上线前,将慢查询日志打开,并把long_query_time=0,查看所有的日志
140+ 3. 仅查询所需字段
141+ 4. 小表驱动大表,确保关联字段有索引
142+ 5. 打开慢日志
143+ 6. 子查询优化,用JOIN替代IN/EXISTS
144+ 7. 避免长事务
139145
140146# ### group by 的优化
1411471. 如果对group by 语句的结果没排序要求,加上order by null
@@ -158,4 +164,16 @@ revoke all privileges on *.* from 'ua'@'%';
1581641. 行记录,无法存储数据结构 (redis)
1591652. schema 扩展很不方便,比如数据多的情况下,添加列,锁表 (mongodb)
1601663. 大数据场景下,i/o高 (hbase)
161- 4. 全文检索弱 (elasticsearch)
167+ 4. 全文检索弱 (elasticsearch)
168+
169+ # # 数据库设计范式
170+
171+ | 范式 | 规则与目标 | 解决的问题 | 示例 |
172+ | ---------| --------------------------------------------------------------------------| ------------------------------| ----------------------------------------------------------------------|
173+ | ** 1NF** | 字段原子性,每列不可再分,有唯一主键 | 消除重复组和非原子值 | 拆分多值字段(如将 ` Phone: 123,456` 拆分为多行) |
174+ | ** 2NF** | 满足1NF,消除非主键字段对复合主键的部分依赖 | 部分依赖导致的数据冗余 | 拆分表(如订单表与产品表分离) |
175+ | ** 3NF** | 满足2NF,消除非主键字段间的传递依赖 | 传递依赖导致的数据冗余 | 拆分表(如用户表与地址表分离) |
176+ | ** BCNF** | 满足3NF,消除主键属性对非候选键的依赖 | 主键属性与非候选键的依赖异常 | 拆分表(如导师-学生关系与研究方向分离) |
177+ | ** 4NF** | 满足BCNF,消除多值依赖 | 多值字段导致的数据冗余 | 拆分多值字段为独立表(如兴趣和技能拆分为多张表) |
178+ | ** 5NF** | 满足4NF,消除连接依赖(表可无损分解为更小表) | 复杂关联导致的信息丢失风险 | 分解三元关系为多个二元表(如供应商-产品-项目拆分为三张表) |
179+ | ** 实践** | 通常设计到3NF或BCNF;需权衡范式与查询性能,必要时反规范化(Denormalization) | 平衡数据一致性与查询效率 | OLTP系统使用3NF,OLAP系统采用星型/雪花模型(反规范化) |
0 commit comments