做网站要sql 数据库名字账号密码,昆明学校网站建设,学ui学费大概多少钱,平台appMySQL调优-01反范式化表设计
数据库设计三范式 第一范式#xff08;1NF#xff09;。确保数据库表的每一列都是不可分割的原子数据项#xff0c;即列中不可包含数组、记录等非原子数据项#xff1b;确保表中没有重复的属性或列#xff0c;每个属性只出现一次#xff0c;…MySQL调优-01反范式化表设计
数据库设计三范式 第一范式1NF。确保数据库表的每一列都是不可分割的原子数据项即列中不可包含数组、记录等非原子数据项确保表中没有重复的属性或列每个属性只出现一次以避免数据冗余表应该具有一个唯一标识每行的主键用于确保数据的唯一性和引用。第二范式2NF。在第一范式的基础上要求所有非主键字段完全依赖于主键不能产生部分依赖。这意味着表中的每个实例或记录必须可以被唯一地区分选取一个能区分每个实体的属性或属性组作为实体的唯一标识。第三范式3NF。在第二范式的基础上要求非主键字段只依赖于主键不依赖于其他非主键。这消除了非主属性对主属性的传递函数依赖确保了表中的列都和主键直接相关而不是间接相关。 反范式化设计 范式越高表设计越精简冗余越低。所谓反范式化设计就是违反范式要求为了提高性能和读取效率就要允许有冗余字段也就空间换时间的概念。 缓存 简单的数据冗余。 统计 比如用户消息次数统计需要一个消息记录表每次查询都要count。反范式化设计可以在user表中创建列来记录消息发送次数。报表日报表月报表等也是反范式化设计。 计数器表设计 反范式化设计提高高并发情况下优化效率比如网站点击次数、下载次数等 这种情况下可以多创建一列slot,每次插入随机选择slot来执行update操作统计的时候只需要sum操作这样就提高了并发率。 范式和反范式对比
范式化设计反范式化设计更新操作快慢数据重复度低高内存占用低高查询表关联多少索引命中率低高