1、首先考虑垂直拆分库,不同的表拆分到不同的库中,例如用户库、产品库、支付库;
2、然后考虑水平拆分库,将一个表的数据放到多张表中,例如按照用户、时间、订单号;
3、插入数据的时候不建立索引;
4、待数据已经插入完成后,建立索引;
5、正确的指定索引字段;
6、使用批量插入数据库的方式代替单条数据的插入;
7、分表或者分库以减少表的总量;
8、查询只返回所需要的字段;
9、避免使用join操作;
10、where子句不进行null判断,使用默认值代替,不使用!=、<>操作,不适用or,避免运算、函数、表达式的操作,这样数据库引擎会放弃索引,改为全表扫描;
11、当天的数据放在Redis中,昨天的放到日表中,一周的放到周报表中,一月的放到月报表中,查询的时候进行下钻;
12、读写分离;
13、使用SSD固态硬盘;
14、数据收集->数据处理->数据建模->数据分析->数据可视化;
15、缓存主动更新方式,锁控制、版本控制,版本控制分为单版本控制、多版本控制;
单版本控制每份数据保存版本号,更新是传入版本号并进行比较;
多版本控制每条数据保存多分,每份有一个版本号,不冲突,定期策略合并数据;
16、数据清理,应该归档或按照年存放,需要查询时,才关联历史年度表;