mysql 单表即将上 2 千万数据 存授权的 性能跟不上了 怎么优化
存商品授权的 每个门店对应每个商品的授权 现在有 8000 多商品 7000 多家门店 目前已经有 1800 多万条数据了 要怎么破 即将到性能瓶颈了
存商品授权的 每个门店对应每个商品的授权 现在有 8000 多商品 7000 多家门店 目前已经有 1800 多万条数据了 要怎么破 即将到性能瓶颈了
别听那些讲面试的瞎几把扯淡,几百万就分库分表很多时候是纯粹给自己加戏.
如果这样的话,可以给权限分级别啊。譬如分为:公共、分组、门店这么几个级别。公共的就是所有门店都能访问;分组的就是要有组权限的才能访问,组权限就是给门店分组,按分组授权;门店的就是指定门店才能访问,和你现在的做法一个样。这样你的权限关系表就能缩减几百倍的数据。我估计有个几万行就足够了。
分权不如直接店铺对商品快。因为还有排序等附加信息吧。
这里面其实是主表要做好,主表只能是关联表。。
select p.name from shop_product sp, product p where sp.shop_id=xxx and sp.product_id=p.id limit 100;
如果 sp 的 shop_id 建立了索引,那么几千万数据,还是毫秒级的。
什么?还在用 MyIsam ?难道非常享受断电之后 repair 的过程?
阿里云上数据库,最低配置一年 2 千那种,最大的表存着 2 亿,感觉还可以拼一拼。
主要还是表结构 查询设计
肯定是你索引建的不对或者 sql 写的有问题!