在以往工作中,参加过一些大数据项目,每日上千万的记录。
1.在关系型数据库上,索引的合理建立非常重要,一般是选择组合索引;
2.在表的存储,会选择hashcode进行分表,因为如果按主键进行分表,会有点问题,例如oracle的序列号,如果事务回滚后,序列号已经被使用,这样有可能数据都分配到某几个分表中,导致数据分配不均衡,而考虑到分库是相当麻烦复杂,所以不选择这种形式;
3.对某些表,会进行归档,然后会放入文档型数据库中,如mongodb;
4.查询时必须加条件,进行数据量缩小,而且是要分页的形式;
5.在进行大批量插入数据时,不适合一条SQL操作,需要分批进行插入,不然IO操作会非常大;
6.对一些大表,进行修改表字段时,选择临时表,特别是一些在不断有数据入库的情况下;
7.在数据库映射类时,主键要用类,因为int有字段范围,存在一定风险
虽然这些网上都有,但这些是项目上,遇到的坑,有深刻的体会.