分区讲解(分区过程)

lxf2023-06-16 17:10:01

[/h 4:mysql分区技术(mysql 5.1发布后开始使用->是甲骨文mysql技术团队的维护人员以插件的形式插入mysql的技术)。

目前,优化海量数据的方法主要有两种:

1.将一个大表分割成多个小表的方法(物理上)

答:竖桌->一竖切成几块。

二:横向表(一般重点)->横切,指一个表有100个数据横切10个表,一个表存储10个项(字段一致)。

2.2:SQL语句的优化(可以通过添加索引来调整,但是数据的增加会导致索引维护成本的增加)。

水平分区技术将一个表拆分成多个表。常见的方式是按照某种哈希算法拆分表中的记录,简单的拆分方法如such。

方式。同样,只有在前端应用程序中的SQL被修改的情况下,才能使用这种分区方法。对于一个SQL,它可能会修改两个。

表,那么你必须成功地写两条SQL语句才能完成一个逻辑事务,这就使得程序的判断逻辑越来越复杂,也导致了程序的维护成本。

高,也失去了使用数据库的优势。

*因此,分区技术可以有效避免上述缺点,成为解决海量数据存储的有力方法。

分区技术:

-->有效解决:物理拆分多张表,逻辑操作一张表显示无变化。

->>MySQL分区技术介绍(*主要使用范围和列表分区*);

-partition逻辑上是一个表,硬件/物理上是多个表,也就是拆分表索引和数据-

MySQL的分区技术不同于以前的分表技术。它类似于水平分表技术,但是它在逻辑层水平分表。

它仍然是应用程序的一个表,

MySQL5.1版本5.1之后有4种分区类型:

一:范围分区(使用最多):基于属于给定连续区间的列值(字段),将多行分配给分区->基于女性字段作为参照点的分区。

-将一个表拆分成:索引文件,而数据文件是分块存储的。

二:列表分区:类似于按范围分区,不同的是列表分区是基于列值匹配一组离散值中的一个值(当列中的值为固定值时进行分区,枚举类型值适合列表分区->例如性别:男或女)。

哈希分区:根据用户定义的表达式的返回值选择的分区。该表达式通过使用要插入到表中的这些行的列值来计算。这个函数可以包含任何在MySQL中有效的表达式,并产生负整数值。

->将每次插入的数据随机均匀分布到多个分区,最后多个分区的数据会均匀分布,但是每个分区的值会不一样,因为是随机分布的(一般用于测试MySQL分区)。

四:key partition:类似于通过hash进行分区,不同的是KEY partition只支持计算一列或多列,MySQL服务器提供自己的hash函数。

测试一下(hash类型用于测试):->myisam在添加、删除和更改查询方面速度很快
Create table 2(ID int)Engine = Myisam
Partition by hash(ID)
Partition 5;->插入数据时,会随机分配并插入到每个分区
中,创建一个存储
\d //->在结束符号修改之前;将数字改为//
create procedure P5()
begin
set @ I = 1;
而@i表p3已经插入了9999条数据。

innodb的数据结构:

分为:共享表空和独占表空。

一:innodb表结构共享表空不能做成分区表:

所有文件的数据和索引都在ibddata1中(比如构建两个表,会生成frm文件,但是两个表的所有数据和索引都在这个文件中共享,所以不能对表进行正确的分区,初始值为10M)。

原因:数据和索引都在一个文件中。ibddata1文件。

二:innodb表结构做分区表,必须& 独占表空;

原因:数据和索引都是独立的文件。

打开独占空房间:(*必须打开配置文件中的文件做独占表空房间做分区表*)
innodb _ data _ home _ dir = C:\ MySQL \ data \
innodb _ data _ file _ path = IB data1:10M:auto extend
innodb _ log _ group _ home _ dir = C:\ MySQL \ data \ .

test:
create table T4(id int)engine = innodb
PARTITION by range(id)(
PARTITION P0值小于(10000),
partition p1值小于(20000),
PARTITION p2值小于max value);

创建innodb类型的数据表后,你会发现如果构建一个X表,会有一个x.frm x.ibd文件,它不会和其他表放在一起对表进行分区。

*总结:只有将innodb设置为独立表空时,才能创建innodb表引擎的表分区。

相关命令:
/s;查看详细信息版本、编码等。。。
显示引擎;检查默认的表引擎
显示插件;看看MySQL的所有插件,就知道是否支持partition
show index from from tabname;检查索引
显示过程状态;查看简历的存储

adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!