大家好,又见面了,我是你们的朋友全栈君。
MySQL分区表概述
我们经常遇到一张表里面保存了上亿甚至过十亿的记录,这些表里面保存了大量的历史记录。 对于这些历史数据的清理是一个非常头疼事情,由于所有的数据都一个普通的表里。所以只能是启用一个或多个带where条件的delete语句去删除(一般where条件是时间)。 这对数据库的造成了很大压力。即使我们把这些删除了,但底层的数据文件并没有变小。面对这类问题,最有效的方法就是在使用分区表。最常见的分区方法就是按照时间进行分区。
分区一个最大的优点就是可以非常高效的进行历史数据的清理。
1. 确认MySQL服务器是否支持分区表
命令:
show plugins;
2. MySQL分区表的特点
在逻辑上为一个表,在物理上存储在多个文件中
HASH分区(HASH)
HASH分区的特点
根据MOD(分区键,分区数)的值把数据行存储到表的不同分区中
数据可以平均的分布在各个分区中
HASH分区的键值必须是一个INT类型的值,或是通过函数可以转为INT类型
如何建立HASH分区表
以INT类型字段 customer_id为分区键
CREATE TABLE `customer_login_log` (
`customer_id` int(10) unsigned NOT NULL COMMENT ‘登录用户ID’,
`login_time` timestamp
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135829.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...