暂无图片
分库分表经验分享
我来答
分享
代野Tank
2022-11-27
分库分表经验分享

分库分表能明显缓解单机数据库的存储空间和连接的压力,也会相应放弃一些数据库自身特性。
实际落地过程,大家觉得有哪些点需要格外注意?可分享下相关经验

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
鲤鱼

哈喽,工作内容相关,我来浅浅的说下。

  1. 能不分,则不分,因为分表之后解决了大问题,却带来一些小问题;既然分,就要分得彻底;
  2. 本身分库分表的方案就是偏向于架构侧的方案,设计中需要考虑的问题也需要从架构出发,整体技术栈的选择;
  3. 我们再也不能像使用集中式数据库一样,设置个主键就可以了,分片键的选择至关重要;
  4. 还需要考虑和当前运维体系的融合,如监控平台、备份手段,分表方案的 HA 等。

对于分库分表,我个人是一个又爱又恨的态度,因为超大规模的场景暂时没有其他的产品可以很平滑去迁移,不能保留原有技术栈。
但,分库分表方案对运维挑战极大,我们不能用原有运维思维来应对分库分表方案的维护,设置需要深度和架构侧打交道。
在使用上,不仅仅是需要了解产品的能力,而是方案设计,已经超出了产品的边界,学习门槛较高,称之为“方案”更合适。
一点思考,希望能帮到题主。

暂无图片 评论
暂无图片 有用 1
打赏 0
暂无图片
代野Tank
题主
2022-11-27
中肯
鸿惊九天
2022-11-29
学习了
辛西娅
  • 表设计、联合查询、子查询、分布式事务等等,需要克服的问题较多。
  • 超大规模可选分表方案,中小公司比较考验架构水平,多数更适合分布式数据库。
暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
什么是MySQL的复制(Replication)?
回答 1
已采纳
MySQL内建的复制功能是构建大型、高性能应用程序的基础。将MySQL的数据分布到多个系统上去,这种分布的机制,是通过将MySQL的某一台主机的数据复制到其他主机(Slaves)上,并重新执行一遍来实
MySQL表,在考虑增删的情况下,建立多少个普通索引最优?
回答 1
已采纳
建议不超过5个。
innodb_flush_log_at_trx_commit=0 存在的意义是什么?
回答 2
已采纳
总有极端。我也认为哪里那么巧正好断电?我就遇到过一次,不是这个参数,而是syncbinlog。也是012这种。那个值写了16.结果就是binlog不全。奇葩吧。理论如果没有极端问题,都不用写日志。但是
mongdb同步到mysql怎么做?有什么推荐的学习资料么?
回答 1
对于这方面没什么好的方式。直接把mongodb执行语句分解,用语句方式刷到mysql上面。mongob里oplog,changestream都可以捕捉到变化。或尝试ETL工具kettle也可以
MySQL:information_schema中的tables和columns表查询长时间不出结果,如何快解决?
回答 2
在服务端查询试试,或者加上limit试试
多台机器连接MySQL数据库会引发锁的问题吗?
回答 1
已采纳
你是问会不会产生死锁吧,这个问题答案是即可能引发,也可能不会引发。锁背后的原因是阻止资源争抢,保证一致性。当发生了相互锁等待,死锁便产生了。所以光连接是不会产生死锁的,具体会不会产生是看你对数据库做的
疑似mysql8.0.19查询bug,导致crash,不确定是不是
回答 6
已采纳
简单来说,就是一个内存临时表由于占用了太大的空间,需要转为磁盘临时表,磁盘临时表的索引没有被正确的初始化,最终导致crash。解决方式1.业务表增加合适的索引,避免产生临时表,同时也能加快SQL执行效
mysql怎么把查询到的数据直接插入到新表中?
回答 1
提示很明显了啊。表结构也要在插入时新建就用createtablenewtableasselectfromoldtable;
现在MySQL8建议使用 utf8mb4,有些表只存一些基本数据,不涉及表情,能用utf8mb3吗?
回答 4
不涉及到emoj的和特殊字符的就用utf8/utf8mb3, 能节省很多空间的(每行能存储更多的字符), utf8mb4占用的空间会更多.  选择字符集可以根据
重命名数据库的方法
回答 1
已采纳
ABC都可以