譬如一般说表的记录数超过500万或者1千万就要分表
但是如果表中的字段少,就几个,是不是上亿,数十亿行记录都可以不分表?
所以如果一个表根据user_id分表后
如果要根据其他id,譬如订单id查询
笨的方法是所有分表都遍历一遍去找
优化方法就是建一个新表做索引功能,仅仅有user_id,订单id少量字段,这个表的记录数可以非常大
譬如一般说表的记录数超过500万或者1千万就要分表
但是如果表中的字段少,就几个,是不是上亿,数十亿行记录都可以不分表?
所以如果一个表根据user_id分表后
如果要根据其他id,譬如订单id查询
笨的方法是所有分表都遍历一遍去找
优化方法就是建一个新表做索引功能,仅仅有user_id,订单id少量字段,这个表的记录数可以非常大
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
思路大致是对的,但你对分表的理解有点偏颇。
分表有两种啊,一种是水平分表,一种是垂直分表。
显然你第一句说的分表指的是水平分表,即按照一定规律分成若干个表,每张表的字段相同仅仅是数据不同。
你后面说的把部分高频字段单独拿出来存,剩余字段存另一张表,这就是垂直分表啊。