专栏首页海涛技术日常互联网公司为啥不使用mysql分区表?(一分钟系列)

互联网公司为啥不使用mysql分区表?(一分钟系列)

缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表。于是去网上查了一下,并询问了58到家的DBA专家,将自己收到的信息沉淀下来,share给大伙。

解决什么问题?

回答:当mysql单表的数据库过大时,数据库的访问速度会下降,“数据量大”问题的常见解决方案是“水平切分”。

mysql常见的水平切分方式有哪些?

回答:分库分表,分区表

什么是mysql的分库分表?

回答:把一个很大的库(表)的数据分到几个库(表)中,每个库(表)的结构都相同,但他们可能分布在不同的mysql实例,甚至不同的物理机器上,以达到降低单库(表)数据量,提高访问性能的目的。

分库分表往往是业务层实施的,分库分表后,为了满足某些特定业务功能,往往需要rd修改代码。

什么是mysql的分区表?

回答:所有数据还在一个表中,但物理存储根据一定的规则放在不同的文件中。这个是mysql支持的功能,业务rd代码无需改动。

看上去分区表很帅气,为什么大部分互联网还是更多的选择自己分库分表来水平扩展咧?

回答:

1)分区表,分区键设计不太灵活,如果不走分区键,很容易出现全表锁

2)一旦数据量并发量上来,如果在分区表实施关联,就是一个灾难

3)自己分库分表,自己掌控业务场景与访问模式,可控。分区表,研发写了一个sql,都不确定mysql是怎么玩的,不太可控

4)运维的坑,嘿嘿

5)… ———————————————— 版权声明:本文为CSDN博主「58沈剑」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shenjian58/article/details/89849760

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CentOS 7 下 yum 安装 Docker CE

    Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10。

    海涛
  • Memcache 和 Redis 相关知识点总结(杂记)

    2.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储

    海涛
  • 使用docker 基于pxc镜像搭建mysql高可用集群 原

    docker pull percona/percona-xtradb-cluster:5.7.21

    海涛
  • 互联网公司为啥不使用mysql分区表?(一分钟系列)

    缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是...

    架构师之路
  • mysql主从配置与数据移植

    YG
  • TKE容器服务部署mysql 5.7以上版本镜像,/var/lib/mysql挂载pvc后无法启动

    在体验腾讯云TKE服务,偶然间进行部署个官方 Docker Hub镜像里的mysql 5.7以上镜像,并配置pvc进行数据持久化存储,将对应挂载点绑定在/var...

    虚心学习
  • mysql 找回误删表的数据办法

    有备份的话很简单,只需要生成一个最近备份的数据 然后用mysqlbinlog找回备份时间点之后的数据 再恢复到现网即可。

    似水的流年
  • 【分布式架构之旅-理论篇】数据库分库分表

    用户2032165
  • mysql 找回误删表的数据办法

    有备份的话很简单,只需要生成一个最近备份的数据 然后用mysqlbinlog找回备份时间点之后的数据 再恢复到现网即可。 要是没有备份 可能就会比较麻...

    似水的流年
  • mysql 找回误删表的数据办法

    有备份的话很简单,只需要生成一个最近备份的数据 然后用mysqlbinlog找回备份时间点之后的数据 再恢复到现网即可。

    似水的流年

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动