1. 程式人生 > >mysql range分割槽

mysql range分割槽

1、在已經存在表中,修改分割槽表

alter table t_fenqu PARTITION by RANGE (TO_DAYS(create_date))
(
	PARTITION p0 VALUES LESS THAN (TO_DAYS('2018-06-01')),
	PARTITION pmax VALUES LESS THAN MAXVALUE
);

a、異常:A PRIMARY KEY must include all columns in the table's partitioning function (需要將分割槽欄位設定成主鍵)

2、增、刪分割槽

-- 刪除分割槽
alter table t_fenqu DROP PARTITION pmax;

-- 新增分割槽
alter table t_fenqu add PARTITION (
	PARTITION p1 VALUES LESS THAN (TO_DAYS('2018-07-01')),
	PARTITION p2 VALUES LESS THAN (TO_DAYS('2018-08-01')),
	PARTITION p3 VALUES LESS THAN (TO_DAYS('2018-09-01')),
	PARTITION pmax VALUES LESS THAN MAXVALUE
);

3、查詢分割槽

SELECT
  partition_name, 
  partition_expression, 
  partition_description, 
  FROM_DAYS(partition_description), 
  table_rows 
FROM
  INFORMATION_SCHEMA.partitions 
WHERE
  TABLE_SCHEMA = SCHEMA() 
  AND TABLE_NAME='t_fenqu'; --這裡是表名
二、mysql表分割槽 https://blog.csdn.net/qq173684423/article/details/53994264

三、儲存過程 自動建立時間分割槽

DROP PROCEDURE IF EXISTS pro_auto_create_partitionByDate;
CREATE PROCEDURE pro_auto_create_partitionByDate(
in dataBaseName varchar(50), in tableName varchar(50)
)x_end:BEGIN
-- 變數宣告 Start
DECLARE x_date VARCHAR(50);
-- DECLARE x_exist_par_max_sql VARCHAR(255);
-- 變數宣告 End


-- 查詢當前時間 加上一個月
select DATE_FORMAT(date_add(NOW(), INTERVAL 1 MONTH),'%Y-%m') into x_date from dual;

-- 拼接新增 分割槽SQL
SET @x_sql = CONCAT('alter table ',tableName,' add PARTITION(', 
'PARTITION ','`p',x_date,'-01`',' VALUES LESS THAN ('
'TO_DAYS(\'',x_date,'-01','\')','))'
);
SELECT @x_sql;  
           PREPARE stmt2 FROM @x_sql;  
           EXECUTE stmt2;  
           DEALLOCATE PREPARE stmt2;
COMMIT;
end x_end;

四、建立事件

-- 檢視定時任務是否開啟
show variables like '%event_scheduler'; 
-- 沒有開啟 開啟一下
SET GLOBAL event_scheduler = ON;

-- 建立事件 
DELIMITER $$  
drop event if exists auto_create_partition_time  $$  
create event auto_create_partition_time 
	on schedule 
	every 1 minute  
	starts sysdate()  
do  
BEGIN  
    call pro_auto_create_partitionByDate('mytest','t_fenqu');
END$$  
delimiter ;

相關推薦

MySQL RANGE分割槽

介紹 RANGE分割槽基於一個給定的連續區間範圍,早期版本RANGE主要是基於整數的分割槽。在5.7版本中DATE、DATETIME列也可以使用RANGE分割槽,同時在5.5以上的版本提供了基於非整形的RANGE COLUMN分割槽。RANGE分割槽必須的連續的且不能重疊。使用 “VALUES LES

mysql range分割槽

1、在已經存在表中,修改分割槽表alter table t_fenqu PARTITION by RANGE (TO_DAYS(create_date)) ( PARTITION p0 VALUES

mysql 分割槽range分割槽

首先呢我們來看下怎麼建立一個分割槽表 在上節課的時候 我們也說過 在分割槽的時候 如果分割槽欄位中有主鍵或者唯一索引的列,那麼多有主鍵列和唯一索引列都必須包含進來。 1 ,按照年齡的範圍 create table staff_r12( id int not null auto_inc

修改mysql hash 分割槽range 分割槽,並刪除一個分割槽

----將hash 分割槽修改為range 分割槽,並刪除一個分割槽 mysql> ALTER TABLE orders_range  DROP PARTITION p0; ERROR 1512 (HY000): DROP PARTITION can only be

MySql分割槽學習總結二:RANGE分割槽,LIT分割槽

MySql分割槽學習總結二:RANGE,LIST RANGE分割槽介紹 在第一節中已經簡單的提到過,按照RANGE分割槽的表示利用取值範圍將資料分成區,區間是連續且不能相互疊加的。這個比較好理解,比如我按學號分割槽,學號在1-99的分在一個區內,在100-199的分在另一個區內,這樣

Mysql --分割槽(3)range分割槽

3.分割槽型別 RANGE分割槽 按照range分割槽的表是利用取值範圍將資料分成分割槽,區間要連續並且不能互相重疊,使用values less than操作符進行分割槽定義 CREATE TABLE tnp ( id INT NOT NU

Mysqlmysql分割槽2 —Range分割槽

按照RANGE分割槽的表是通過如下一種方式進行分割槽的,每個分割槽包含那些分割槽表示式的值位於一個給定的連續區間內的行。這些區間要連續且不能相互重疊,使用VALUES LESS THAN操作符來進行定義。在下面的幾個例子中,假定你建立了一個如下的一個表,該表儲存有20家

MySQL資料表range分割槽例子,按年/按月

檢視分割槽資料量,檢視全庫資料量 USE information_schema; SELECT PARTITION_NAME,TABLE_ROWSFROM INFORMATION_SCHEMA.PARTITIONSWHERE TABLE_NAME = 'sale_data

mysql RANGE 大資料分割槽例項

目錄 目錄 建立分割槽 刪除分割槽 檢視分割槽 建立分割槽 ALTER TABLE lrn_performance PARTITION BY RANGE (user_id)

MySQL主從分割槽和讀寫分離

MySQL主從分割槽、讀寫分離、負載均衡 一個MySQL的伺服器的承載連線的數量是有限的,當超出最大連線數之後,MySQL伺服器就會出現異常或者宕機。 再者,伺服器也可能會壞掉(比如硬碟壞了),這時資料會丟失,所以我們需要考慮資料庫的主從分割槽。 一般大型網站都是讀多寫少,實現讀寫分

MysqlMysql分割槽型別及示例

前言 檢視分割槽: SELECT PARTITION_NAME, PARTITION_METHOD, PARTITION_EXPRESSION, PARTITION_DESCRIPTION, TABLE_ROWS, SUBPARTITION_NAME, SUBPARTITION

Range分割槽

入門例子: –建立表 CREATE TABLE sale( product_id VARCHAR2(5), sale_count NUMBER(10,2) ) –分割槽 PARTITION BY RANGE (sale_count) ( PARTITION p1 VALUES LESS TH

MySQL資料分割槽儲存

MySQL是一種傳統的關係型資料庫,其體積小、速度快、成本低,但是對於大資料量(百萬級以上)的操作顯得有些力不從心。 最近小編使用的MySQL資料庫就面臨了大資料量操作的問題,當資料量達到百萬級之後,查詢速度明顯下降,此時就需要優化提升查詢速度了。 data表分割槽儲存 原理解釋

mysql建立分割槽、儲存統計、定時事件

DROP TABLE IF EXISTS monitor_printer; CREATE TABLE monitor_printer ( id int NOT NULL AUTO_INCREMENT COMMENT '自增長id(主鍵)', monitorId int NOT NULL C

012-- mysql分割槽和分表

分割槽 分割槽就是把一個數據表的檔案和索引分散儲存在不同的物理檔案中。 mysql支援的分割槽型別包括Range、List、Hash、Key,其中Range比較常用: RANGE分割槽:基於屬於一個給定連續區間的列值,把多行分配給分割槽。 LIST分割槽:類似於按RANGE分

Oracle 分割槽表——Range分割槽

本博文少許理論資料來至DBA技術大牛http://blog.csdn.net/tianlesoftware/article/details/4717318,本著實踐式學習,書寫以下博文: 一、什麼是分割槽表        Oracle提供了分割槽技術以支援VLDB(Ver

檢視Mysql分割槽語句

SELECT partition_name part, partition_expression expr, partition_description descr, table_rows FROM INFORMATION_SCHEMA.partitions W

mysql分割槽和分表

分割槽 分割槽就是把一個數據表的檔案和索引分散儲存在不同的物理檔案中。 mysql支援的分割槽型別包括Range、List、Hash、Key,其中Range比較常用: RANGE分割槽:基於屬於一個給定連續區間的列值,把多行分配給分割槽。 LIST分割槽:類似於按

5.【MYSQL分割槽&分庫&分表

Mysql分割槽分庫分表 1.mysql分割槽 1.1Range分割槽 1.2List分割槽 1.3Hash分割槽 1.4 2.水平分割 3.垂直分割 1.m

MySQL LIST分割槽

介紹 LIST分割槽和RANGE分割槽非常的相似,主要區別在於LIST是列舉值列表的集合,RANGE是連續的區間值的集合。二者在語法方面非常的相似。同樣建議LIST分割槽列是非null列,否則插入null值如果列舉列表裡面不存在null值會插入失敗,這點和其它的分割槽不一樣,RANGE分割槽會將其作為最