Mysql学习总结(31)——MySql使用建议,尽量避免这些问题
做服务器端开发的同学们,相信对于mysql应该是十分熟悉,但是一旦真正出现问题,你是否能够快速的发现问题的起因,并且解决呢?一旦问题涉及到数据库层面,往往不是那么好解决的,通常来说,我们需要提前做应对未来可能出现问题的准备。下面是几条针对mysql使用的优化建议:
-
尽量减少数据库上的计算操作
将那些需要耗费cpu资源计算数据的操作尽可能的放在服务器上运行,不要所有的数学计算全部抛给数据库,减小数据库开销,提升效率。
-
合理的分库分表
按照具体的业务需求,合理的设计数据库和表,将数据合理分开存储。单表数量最好不超过500万记录。一个数据中表数量最好不多于300。
-
合理控制每张表中的字段
单表的字段控制在20以内为最佳,而且字段尽量短小但是含义清晰。大字段或者过多的字段都会影响执行效率。
-
建议使用反范式的设计
在数据库的学习过程,多数都会介绍关于数据库的范式,达到第几范式需要如何设计等等,但在实际应用过程,往往需要牺牲范式,利用空间换取时间。因为范式级别越高可能意味着更多的表关联操作。
-
尽量杜绝3种大的sql操作
第一种:超长的sql语句,而且往往是多表查询,建议拆分多条,减少查询的字段等
第二种:事物比较长的sql语句,容易失败,并且会影响其他sql的执行
第三种:批量的sql数据执行
-
最好使用数值类型存储
占用空间小,计算快
-
尽量避免使用null
如何数据库中存在null,查询优化困难,并且存储null也需要额外的空间。因为的null的存在,查询时也会导致复合索引失效。
-
尽量不使用text或者blog等
如何可以使用varchar保存数据,尽量使用varchar,比text和blog性能好很多。