项目背景
系统包含多个直播平台数据斗鱼,虎牙,QQ音乐等多个业务的数据,通过数据分析重组计算并按照一定数据格式返回给前端以多种数据表格形式展示包括直线图,柱状图,饼状图,表格等。数据权限和操作权限按照用户分配角色,角色分配权限的方式设计。数据上传下载利用阿里巴巴插件进行快速导入,导出。我主要负责项目优化对百万数据量的导入、数据清洗、查询、分析、统计。
优化一 选择更合适的存储引擎
针对这个项目是读多写少场景,我这里把原来MYSQL 默认的搜索引擎INNODB 改为 MYISAM 。
INNODB 和 MYISAM 使用场景
很多人在设计数据库的时候往往忘记了一个东西—存储引擎。一般我们常听见的有 MYISAM 和 INNODB 两种。
INNODB : 被MYSQL设置为默认存储引擎肯定是它更加适用更多场景,它这对写操作比较友好,锁粒度更小,支持行锁,而且支持事务(这一点我感觉是它更加常用的地方,因为很多系统都需要事务的支持的)
MYISAM:它的特点其实刚好和INNODB是相反的。它对读操作友好,锁粒度大,只能表锁,而且不支持事务。
结论
所以我改用MYISAM作为这个系统的存储引擎应该大家能够理解了把。由于这个系统是读多写少,几乎是不写入,只有一个批量的导入数据