尽量按照索引递增顺序插入记录,以避免频繁的调整索引。
主键:1 - 10 毫秒
唯一索引:10 - 100 毫秒
非唯一索引:100 - 1000 毫秒
无索引:百万条数据 1000+ 毫秒
Mysql 数据库,若查询操作是基于主键或唯一索引的,上亿条数据也没有性能问题;若查询命中在非唯一索引,且非唯一索引数据区分度高,千万级别或上亿数据问题也不大;若区分度较低或者全表扫描的,千万条记录是不能接受的,因此需要有处理方案。
如果业务系统有流水表(每月有千万条数据)且有时间范围递增的数据,可以考虑按照时间方式切分,比如一年前的数据搞到另一张表或另一个数据库中,然后对业务做改造,将用户的查询按照时间维度区分开来,比如只能差近三个月的数据,查三个月前的需要点另外一个 table 查询等,为了改造量最小可以考虑使用分库分表中间件然后依然按照时间维度分表查询即可