TUhjnbcbe - 2025/5/8 18:38:00
MySQL数据库基础MySQL三范式第范式:所有字段值都是不可分解的原值。例如有个列是电话号码个可能有个办公电话个移动电话。第范式就需要拆开成两个属性。第范式:主属性完全函数依赖于候选键。如PersonID,ProductID,ProductName,PersonName可以看到,OrderID和ProductID是联合主键,但是ProductName是依赖于ProductID的,只依赖了部分主键,没有依赖全部主键。需要拆分成三个表:PersonID,PersonName,ProductID,ProductName和PersonID,ProductID第三范式:每列数据都和主键直接相关,不能间接相关。如OrderID,ProductID,ProductName,OrderID是主键,但是ProductID依赖了OrderID,ProductName依赖了ProductID,等于说是间接依赖了OrderID,所以需要拆分为两个表:OrderID,ProductID和ProductID,ProductName这需要指明范式不是最好的,我们需要混合使。范式和反范式范式的优点:因为相对来说有较少的重复数据,范式化的更新操作要反范式快。同时范式化需要更少的distinct和orderby。范式化缺点:通常需要关联,不仅代价昂贵,也可能会使得些索引效常的反范式法:复制:在两个表中根据实际业务情况存储部分相同的字段列,即有利于查询,也不会把表搞得太。缓存:对于需要多次join查询的表,可以在个表中加个缓存列,来缓存所join表的部分常数据,如count等,我们需要实时更新该缓存。