mysql中如何判断是否支持分区
作者:mrr 时间:2024-01-19 18:00:57
mysql可以通过下面语句判断是否支持分区:
SHOW VARIABLES LIKE '%partition%';
如果输出:
have_partitioning YES
表示支持分区。
或者通过:
SHOW PLUGINS;
显示所有插件,如果有partition ACTIVE STORAGE ENGINE GPL 插件则表明支持分区
ps:什么是数据库分区
前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块,这样呢,我们查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。如果表的数据太大,可能一个磁盘放不下,这个时候,我们可以把数据分配到不同的磁盘里面去。
分区的二种方式
1,横向分区
什么是横向分区呢?就是横着来分区了,举例来说明一下,假如有100W条数据,分成十份,前10W条数据放到第一个分区,第二个10W条数据放到第二个分区,依此类推。也就是把表分成了十分,根用merge来分表,有点像哦。取出一条数据的时候,这条数据包含了表结构中的所有字段,也就是说横向分区,并没有改变表的结构。
2,纵向分区
什么是纵向分区呢?就是竖来分区了,举例来说明,在设计用户表的时候,开始的时候没有考虑好,而把个人的所有信息都放到了一张表里面去,这样这个表里面就会有比较大的字段,如个人简介,而这些简介呢,也许不会有好多人去看,所以等到有人要看的时候,在去查找,分表的时候,可以把这样的大字段,分开来。
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java通过MyBatis框架对MySQL数据进行增删查改的基本方法
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
![](https://img.aspxhome.com/file/2023/3/112963_0s.png)
python3 下载网络图片代码实例
php7安装openssl扩展方法
重构中的模块化设计:样式的作用域
Python中常用功能的实现代码分享
在ASP中使用SQL语句之6:存储过程查询
python3实现域名查询和whois查询功能
关于Python的Thread线程模块详解
![](https://img.aspxhome.com/file/2023/5/118355_0s.png)
Go语言递归函数的具体实现
Pandas 同元素多列去重的实例
selenium3+python3环境搭建教程图解
![](https://img.aspxhome.com/file/2023/2/131362_0s.jpg)
python读写ini配置文件方法实例分析
MySQL函数一览_MySQL函数全部汇总
python开发之thread实现布朗运动的方法
![](https://img.aspxhome.com/file/2023/2/92102_0s.png)
MySQL 8.0 对 limit 的优化技巧
Numpy(Pandas)删除全为零的列的方法
查看TensorFlow checkpoint文件中的变量名和对应值方法
Windows下Anaconda下载安装与配置教程分享
![](https://img.aspxhome.com/file/2023/6/89436_0s.png)