单机结构,已上线项目部分表数据已接近千万,如何无缝优化分表

如题所示,部分记录表若已达千万级数据行数。
欢迎讨论

大人中
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

简单点的

  1. 创建好数据表
  2. 更改业务逻辑
  3. 数据更新到要拆分的表中
  4. 将业务逻辑更新到线上服务器
  5. 将更新业务逻辑期间旧表的少量数据迁移到新表

复杂点的
先同时维护新表和旧表,查询等一直使用旧表,然后再去除旧表的逻辑,分两步走。

1个月前 评论
cheer (楼主) 1个月前
Adachi (作者) 1个月前
讨论数量: 12

空手套白狼!

1个月前 评论
cheer (楼主) 1个月前

简单点的

  1. 创建好数据表
  2. 更改业务逻辑
  3. 数据更新到要拆分的表中
  4. 将业务逻辑更新到线上服务器
  5. 将更新业务逻辑期间旧表的少量数据迁移到新表

复杂点的
先同时维护新表和旧表,查询等一直使用旧表,然后再去除旧表的逻辑,分两步走。

1个月前 评论
cheer (楼主) 1个月前
Adachi (作者) 1个月前

话说可以看看TIDB,不过我没用过,你可以试试看。

1个月前 评论
cheer (楼主) 1个月前

等上亿再优化

1个月前 评论
南城以南

索引不好使的前提下

首先确定是 读 还是 写出现了瓶颈

  • 1、读瓶颈 冷热分离
  • 2、写瓶颈 分库分表+中间件逻辑数据组装
1个月前 评论

等老板加钱再优化

1个月前 评论
cheer (楼主) 1个月前

目前有个简单表,数据量过亿了,准备拆,但是在纠结是上中间件,还是在model层写拆分逻辑 :cry:

1个月前 评论
cheer (楼主) 1个月前

1kw数据太少,不至于到分表的地步

1个月前 评论
cheer (楼主) 1个月前
panqihuan 1个月前

千万级别建好索引完全可以

1个月前 评论
cheer (楼主) 1个月前

看项目是什么维度数据存储的

几千万先顶着还没到瓶颈

保守一点,老用户还是用老表,此时再添加的用户的数据,就存到新表或新库中

挑战一下就是数据库中间件了,如果使用中间件,欢迎分享你的方案

1个月前 评论
cheer (楼主) 1个月前

建议先去了解一下B+树吧,一千万那么小的数据量就谈这个是不是为时过早?合理设计,单表存个几十亿行都行

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!