互联网公司为啥不使用mysql分区表?

news/2024/7/7 9:52:32

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

 

解决什么问题?

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

 

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

回答:分库分表,分区表

 

什么是mysql的分库分表?

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

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

 

什么是mysql的分区表?

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

 

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

回答:

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

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

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

4)运维的坑,嘿嘿

5)…

 

引用:http://mp.weixin.qq.com/s?__biz=MzA4NDc2MDQ1Nw==&mid=2650238106&idx=4&sn=ca62fe64ec04cfe7fb7e24b02f40834f&chksm=87e18e7cb096076a9f718ade60ee3109788e79357313dea406a635ef551c3aa2d99d15410041&scene=0#wechat_redirect


http://www.niftyadmin.cn/n/2711409.html

相关文章

Mono+Jexus部署C# MVC的各种坑

如果你看到这篇文章,先别急着动手,过完一遍,确定是你要的再动手。 别人提到的这里不赘述,只说查了好久才知道的。 1号坑:System.IO.FileNotFoundException Could not find file "roslyn\csc.exe".详细信息如…

spring5的影响_李孟_新浪博客

ReactiveStreams 马上要又一次的颠覆编程方法了,Spring5内置支持Reactor,RxJava...也支持Netty,这样对于Web支持,Servlet规范将成为可选的,不再是必须的 。这个思想是向上纵向加深。Html5应用思想是向下横向拓展...都值得研究

Mac终端查看sqlite3数据库、表数据等(含sqlite可视化工具下载)

背景: 有时候,我们在用FMDB等库处理iOS数据库时,沙盒里保存的数据库格式为.sqlite3。 那么,我们如何查看这个数据库呢? 其实有两种方法: 1、借助工具 - Sqlite Database brower,免费 下载链接&a…

spring5的影响

ReactiveStreams 马上要又一次的颠覆编程方法了,Spring5内置支持Reactor,RxJava...也支持Netty,这样对于Web支持,Servlet规范将成为可选的,不再是必须的 。这个思想是向上纵向加深。 Html5应用思想是向下横向拓展...都值得研究

vs2010中的各种文件

http://blog.csdn.net/xmsheji/article/details/6783162 原文地址 SDF文件和ipch文件夹: visual studio 2010 中新建一个项目会同时建立一个ipch目录与sdf文件,即使你删掉它,再次打开工程时还是会重新建立。动辄30、50M的容量让我们心里很不爽。其实这…

laravel控制器使用中间件

2019独角兽企业重金招聘Python工程师标准>>> 官方文档写的比较简单,只用如下就行了,但你使用过程中是会报错的,因为还没建立对应关系 public function __construct(){$this->middleware(wechatapi); } 打开app/Http/Kernel.php…

C++中变量命名规则

一、程序风格: 1、严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如: 2、提示信…

Linux下安装交叉工具链安装vim

因为要做嵌入式开发就不得不安装交叉编译工具链: Linux下安装软件的方式 : ①在线安装,需要的条件是上网,譬如要安装vim,我们需要输入命令 apt-get install vim。 ②自己下载安装包来安装,就是windows中常…