终端用户30多个,数据量几十万,服务器5万多的配置,内网ERP系统为何老发生死锁?谁受得了?核心业务表被锁后意味着系统瘫了! 经排查SQL语句,根本原因是SQL语句太复杂,关联太多,加上各种模糊查询,索引就失效了!这种做法完全就是太遵守数据库范式了,有时候为了某个字段的统计,你不得不额外关联很多表,时间长了,你自己写的SQL语句可能都不知道啥意思! 基于这种读写对表资源的竞争,在处理复杂业务的时候,我喜欢做冗余字段,提前把复杂的数据,在业务处理的时候直接生成好,这种额外的辅助表或者冗余字段,也会在某一天给你带来惊喜,当客户需要某个数据的时候,而不是临时去进行复杂的查询和计算,而是一个简单的SQL语句!所以做开发,大可不必完全遵守数据库的几个范式,把握自由度,要考虑更多的扩展性和可统计性,否则当出现频繁的死锁后,你会花更多的成本去改变你的架构和底层数据关系!
终端用户30多个,数据量几十万,服务器5万多的配置,内网ERP系统为何老发生死锁
华歆商业
2024-10-06 17:47:35
0
阅读:0