当前位置:网站首页>数据库存储---表分区
数据库存储---表分区
2022-07-07 05:48:00 【蓝天⊙白云】
随着项目的发展,数据库的单表数据也越来越多,相关操作也就越来越慢,这个时候我们要怎么才能提高我们的相关操作效率呢?很多人都听说过分库分表,但是还有一个分区的方式可能被忽略了,在数据量还未达到千万级别的时候,我们也许还能够使用分区的方式,让一个表的数据分布在不同的文件上面,当然我们要清楚我们的表数据都是按照文件的方式存放在磁盘上面的,分区和分表是不同的意思,分区是指将一个表的数据按照条件分布到不同的文件上面,未分区前都是存放在一个文件上面的,但是它还是指向的同一张表,只是把数据分散到了不同文件而已,但是分表却是将数据分散到了不同的表,结构虽然相同,但是表的名字发生了变化。分区有助于我们降低每次操作的数据,从而提高性能。
遇到这种大数据量的问题,我们可以通过以下思路进行解决:
1.分流(原则就是:尽量使每次操作的数据的基数减少 ):
1.1.用和不用、常用和不常用分开。
1.2.对数据库存放的数据:分区、分库、分表 。
1.3.对文件存放的数据:拆文件。
1.4.考虑分批处理。
2.缓存技术:读多写少用缓存。
3.数据库优化:合理设计数据库结构、合理构建索引、数据库集群 。
4.处理优化:优化Sql、考虑使用临时表、中间表。
5.合理使用NoSql:Mongodb、Redis、HBase等 。
6.分布式大数据处理方案 :Hadoop、Spark、Storm等。
这里我们主要需要了解的是表如何进行分区,分区有什么优缺点以及分区又有哪些注意事项。这里我们是以mysql进行举例。
我们首先看下分区有什么优缺点:
1.优点:
• 进行逻辑数据分割,分割数据能够有多个不同的物理文件路径
接下来我们看下的分区方式:
1.RANGE分区:给定一个连续区间的列值 。
创建方式如下:
-
CREATE
TABLE tbl_users1 (
-
uuid
INT
NOT
NULL,
-
name
VARCHAR(
20),
-
registerTime
VARCHAR(
100)
-
)
-
PARTITION
BY
RANGE (uuid) (
-
PARTITION p0
VALUES LESS THAN (
5),
-
PARTITION p1
VALUES LESS THAN (
10),
-
PARTITION p2
VALUES LESS THAN (
15),
-
PARTITION p3
VALUES LESS THAN MAXVALUE
-
);
2.LIST分区:LIST是列值匹配一个离散值集合中的某个值来进行选择。
创建方式如下:
-
CREATE
TABLE tbl_users2 (
-
uuid
INT
NOT
NULL,
-
name
VARCHAR(
20),
-
registerTime
VARCHAR(
100)
-
)
-
-
PARTITION
BY List (uuid) (
-
PARTITION p0
VALUES
in (
1,
2,
3,
5),
-
PARTITION p1
VALUES
in (
7,
9,
10),
-
PARTITION p2
VALUES
in (
11,
15)
-
);
3.HASH分区:用户定义的表达式的返回值来进行hash计算之后选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算,这个函数必须产生非负整数值。
创建方式如下:
-
CREATE
TABLE tbl_users4 (
-
uuid
INT
NOT
NULL,
-
name
VARCHAR(
20),
-
registerTime
VARCHAR(
100)
-
)
-
PARTITION
BY HASH (uuid)
/
/uuid可以添加表达式,比如
/
2,或者
mod(uuid,
2),性能低,每条数据要计算之后在hash然后再插入
-
PARTITIONS
3;
4.KEY分区:类似于按HASH分区,由MySQL服务器提供其自身的哈希函数。
创建方式如下:
-
CREATE
TABLE tbl_users5 (
-
uuid
INT
NOT
NULL,
-
name
VARCHAR(
20),
-
registerTime
VARCHAR(
100)
-
)
-
PARTITION
BY LINEAR Key (uuid)
-
PARTITIONS
3;
在后面一篇文章中我们将专门介绍分区操作,这里不再赘述。在分区的时候我们需要注意以下情况:
1.如果表中存在primary key或者unique key时,分区的列是两种中的一个组成部分
边栏推荐
- 基本数据类型和string类型互相转化
- Transformation function map and flatmap in kotlin
- A single game with goods increased by 100000, and the rural anchor sold men's clothes on top of the list?
- 登山小分队(dfs)
- 21 general principles of wiring in circuit board design_ Provided by Chengdu circuit board design
- Detailed explanation of apply, also, let, run functions and principle analysis of internal source code in kotlin
- Obsidan之数学公式的输入
- 使用AGC重签名服务前后渠道号信息异常分析
- Using helm to install rainbow in various kubernetes
- Tronapi-波场接口-源码无加密-可二开--附接口文档-基于ThinkPHP5封装-作者详细指导-2022年7月6日-新手快速上手-可无缝升级tp6版本
猜你喜欢
[paper reading] icml2020: can autonomous vehicles identify, recover from, and adapt to distribution shifts?
Open3D ISS关键点
Practice of implementing cloud native Devops based on rainbow library app
调用华为游戏多媒体服务的创建引擎接口返回错误码1002,错误信息:the params is error
Ebpf cilium practice (1) - team based network isolation
Input and output of floating point data (C language)
Through the "last mile" of legal services for the masses, fangzheng Puhua labor and personnel law self-service consulting service platform has been frequently "praised"
Openvscode cloud ide joins rainbow integrated development system
国标GB28181协议视频平台EasyGBS新增拉流超时配置
SSM 整合
随机推荐
How to realize the high temperature alarm of the machine room in the moving ring monitoring system
One click installation of highly available Nacos clusters in rainbow
The reified keyword in kotlin is used for generics
[Yu Yue education] basic reference materials of electrical and electronic technology of Nanjing Institute of information technology
Pvtv2--pyramid vision transformer V2 learning notes
IP guard helps energy enterprises improve terminal anti disclosure measures to protect the security of confidential information
Improve the delivery efficiency of enterprise products (1) -- one click installation and upgrade of enterprise applications
关于基于kangle和EP面板使用CDN
[untitled]
[Chongqing Guangdong education] accounting reference materials of Nanjing University of Information Engineering
Use of any superclass and generic extension function in kotlin
opencv学习笔记一——读取图像的几种方法
Leetcode 1984. Minimum difference in student scores
Go write a program that runs within a certain period of time
Virtual address space
Interface as a parameter (interface callback)
Detailed explanation of apply, also, let, run functions and principle analysis of internal source code in kotlin
AVL balanced binary search tree
基本数据类型和string类型互相转化
Opencv learning note 5 - gradient calculation / edge detection