数据库设计学习笔记

1、数据库三大范式
⑴原子性:每一列都必须是不可再分的院子值,不能有“表里表”,不能存在表、复合值
⑵消除部分依赖:确保表中的每列都和主键相关,不可以把多种数据保存在同一张数据库表中
⑶确保每列都和主键列直接相关,而不能间接相关
2、基于事务修改数据,死锁是不可避免的,两个方法:
⑴按照固定顺序操作数据
⑵事务尽量的简短,不要在事务过程中做等待,降低并发
3、锁的隔离级别
4、数据库函数执行时不走索引,会全表扫描
5、数据库设计不仅是为了存储,也是为了业务方便,设计决定开发量
6、按照ID大小存储数据,左右的方式,查询效率极高
7、数据库的负载均衡和应用程序完全不同,因为数据必须一致
8、读写分离,二八原则,20%是写,80%是读
9、基于发布订阅模式的主从数据库,事务复制会有几秒钟的延迟
10、程序访问数据的时候,写数据库配置一个连接,读可以配置多个,放在一个池子里
11、通过AlwaysOn是通过路由模式,自动切换
12、分表
⑴垂直分表:拆分字段来分表,有些字段占空间,更新少,查询少,就适合垂直分出去
⑵水平分表:按时间分,过期数据大部分情况没有用;按地域分,不同地域交互不冲突;
⑶表分区:数据库提供的功能,按照条件,把一张表的数据分开成不同的硬盘文件
13、分库
⑴垂直分库:按业务拆分多个库,不是一个程序同时访问多个数据库连接,通过服务端形式提供。事务通过最终一致性策略解决
⑵水平分库:同分表操作,大部分按照地域分 
14、索引是一个独立的,重复的存储,体积小,扫描快
15、聚集索引一张表只有一个
16、非聚集索引,额外维护一份索引页数据,可以有多个,一张表最好不超过5个
17、 数据库SQL优化大总结之 百万级数据库优化方案
18、Lucene:分词、建索引、存储、着色,盘古分词
 
image
posted @ 2026-03-26 22:11  IT王师傅  阅读(3)  评论(0)    收藏  举报