欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySql創(chuàng)建分區(qū)的方法實例

 更新時間:2022年04月13日 11:25:09   作者:SportSky  
mysql分區(qū)相對于mysql分庫分表便利很多,可以對現(xiàn)有的mysql大表添加分區(qū),也可以對已有分區(qū)的表擴充分區(qū),下面這篇文章主要給大家介紹了關于MySql創(chuàng)建分區(qū)的相關資料,需要的朋友可以參考下

一、Mysql分區(qū)類型

1、RANGE 分區(qū):基于屬于一個給定連續(xù)區(qū)間的列值,把多行分配給分區(qū)。

2、HASH分區(qū):基于用戶定義的表達式的返回值來進行選擇的分區(qū),該表達式使用將要插入到表中的這些行的列值進行計算。這個函數(shù)可以包含MySQL中有效的、產生非負整數(shù)值的任何表達式。

3、KEY分區(qū):類似于按HASH分區(qū),區(qū)別在于KEY分區(qū)只支持計算一列或多列,且MySQL服務器提供其自身的哈希函數(shù)。必須有一列或多列包含整數(shù)值。

4、復合分區(qū):基于RANGE/LIST 類型的分區(qū)表中每個分區(qū)的再次分割。子分區(qū)可以是 HASH/KEY 等類型。

二、RANGE分區(qū)

缺點:1、只能通過整形類型的主鍵建進行分區(qū)

2、分區(qū)數(shù)據(jù)不平均

1、創(chuàng)建分區(qū)

DROP TABLE IF EXISTS `product_partiton_range`;
CREATE TABLE `product_partiton_range`  (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `ProductName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `ProductId` int(11) NOT NULL,
  PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 

PARTITION BY RANGE (Id) PARTITIONS 3 (
PARTITION part0 VALUES LESS THAN (1000), 
PARTITION part1 VALUES LESS THAN (2000), 
PARTITION part2 VALUES LESS THAN MAXVALUE);

2、批量添加數(shù)據(jù)

DROP PROCEDURE IF EXISTS PROC_USER_INSERT;
delimiter $$
-- 創(chuàng)建存儲過程
CREATE  PROCEDURE PROC_USER_INSERT(
IN START_NUM INT,
IN MAX_NUM INT
)
BEGIN 

DECLARE TEMP_NUM INT DEFAULT 0;
SET TEMP_NUM=START_NUM;

WHILE TEMP_NUM<=MAX_NUM  DO
    INSERT INTO product_partiton_range(ProductName,ProductId) VALUES('XIAOHEMIAO',TEMP_NUM);
    SET TEMP_NUM=TEMP_NUM+1;
END WHILE;


END$$ ;
delimiter;

-- 調用存儲過程
CALL PROC_USER_INSERT(1,5000);

3、通過EXPLAIN PARTITIONS命令發(fā)現(xiàn)SQL優(yōu)化器只需搜對應的區(qū),不會搜索所有分區(qū)

4、如果sql語句有問題,那么會走所有區(qū)。會很危險。所以分區(qū)表后,select語句必須走分區(qū)鍵。

5、查看當前表的分區(qū)情況

SELECT
partition_name part,
partition_expression expr,
partition_description descr,
table_rows
FROM information_schema.partitions WHERE
table_schema = SCHEMA()
AND table_name='product_partiton_range';

二、Hash分區(qū)

優(yōu)點:分區(qū)數(shù)據(jù)比較平均

缺陷:HASH分區(qū)只能對數(shù)字字段進行分區(qū),無法對字符字段進行分區(qū)。如果需要對字段值進行分區(qū),必須包含在主鍵字段內

1、創(chuàng)建分區(qū)

DROP TABLE IF EXISTS `product_partiton_hash`;
CREATE TABLE `product_partiton_hash`  (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `ProductName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `ProductId` int(11) NOT NULL,
  PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 

PARTITION BY HASH (Id) PARTITIONS 3 ;

三、Key分區(qū)

優(yōu)點:除了text,blob類型字段,其他類型字段都可以進行分區(qū)

缺陷:不支持text,blob(二進制)類型的字段進行分區(qū)

1、創(chuàng)建分區(qū)

DROP TABLE IF EXISTS `product_partiton_key`;
CREATE TABLE `product_partiton_key`  (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `ProductName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `ProductId` int(11) NOT NULL,
  PRIMARY KEY (`Id`,`ProductName`) ,
  INDEX `ProductId_index`(`ProductId`) 
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 
PARTITION BY KEY (ProductName) PARTITIONS 3 ;

四、List分區(qū)

優(yōu)點:支持枚舉類型的字段進行分區(qū),比如商品狀態(tài),商品類型

1、創(chuàng)建分區(qū)

DROP TABLE IF EXISTS `product_partiton_list`;
CREATE TABLE `product_partiton_list`  (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `ProductName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `ProductId` int(11) NOT NULL,
    `ProductStatus` int(11) NOT NULL,
  PRIMARY KEY (`Id`,`ProductStatus`) ,
  INDEX `ProductId_index` (`ProductId`) 
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 
PARTITION BY LIST(ProductStatus)(
    PARTITION p0 VALUES in(0,1),
    PARTITION p1 VALUES in(2,3,4)
);

2、插入數(shù)據(jù)

INSERT INTO product_partiton_list(ProductName,ProductId,ProductStatus) VALUES('XIAOHEMIAO',1,0);
INSERT INTO product_partiton_list(ProductName,ProductId,ProductStatus) VALUES('XIAOHEMIAO',1,1);
INSERT INTO product_partiton_list(ProductName,ProductId,ProductStatus) VALUES('XIAOHEMIAO',1,2);
INSERT INTO product_partiton_list(ProductName,ProductId,ProductStatus) VALUES('XIAOHEMIAO',1,3);
INSERT INTO product_partiton_list(ProductName,ProductId,ProductStatus) VALUES('XIAOHEMIAO',1,4);

3、查看當前表的分區(qū)情況

附:查詢分區(qū),各區(qū)表數(shù)據(jù)量

SELECT PARTITION_NAME,TABLE_ROWS
FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_NAME = 'table';

總結

1、分區(qū)字段必須是主鍵

2、分區(qū)字段,必須以分區(qū)字段進行查詢,否則分區(qū)失效

友情鏈接

http://www.dbjr.com.cn/article/244256.htm

http://www.dbjr.com.cn/article/244313.htm

http://www.dbjr.com.cn/article/244318.htm

到此這篇關于MySql創(chuàng)建分區(qū)的文章就介紹到這了,更多相關MySql創(chuàng)建分區(qū)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL中的?DQL?聚合函數(shù)詳解

    MySQL中的?DQL?聚合函數(shù)詳解

    SQL聚合函數(shù)是一組函數(shù),用于計算并返回數(shù)據(jù)集的單個值,這些函數(shù)通常用于在SELECT語句中匯總數(shù)據(jù),本文給大家介紹MySQL中的DQL聚合函數(shù),感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • mysql連接查詢、聯(lián)合查詢、子查詢原理與用法實例詳解

    mysql連接查詢、聯(lián)合查詢、子查詢原理與用法實例詳解

    這篇文章主要介紹了mysql連接查詢、聯(lián)合查詢、子查詢原理與用法,結合實例形式詳細分析了mysql連接查詢、聯(lián)合查詢、子查詢的基本概念、功能、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • MySQL配置sql_mode的參數(shù)屬性作用

    MySQL配置sql_mode的參數(shù)屬性作用

    ,通過設置sql_mode,可以完成不同嚴格程度的數(shù)據(jù)校驗,本文主要介紹了MySQL配置sql_mode的作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • mysql如何利用Navicat導出和導入數(shù)據(jù)庫的方法

    mysql如何利用Navicat導出和導入數(shù)據(jù)庫的方法

    這篇文章主要介紹了mysql如何利用Navicat導出和導入數(shù)據(jù)庫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Mysql存儲過程中游標的用法實例

    Mysql存儲過程中游標的用法實例

    這篇文章主要介紹了Mysql存儲過程中游標的用法,以商戶關聯(lián)數(shù)據(jù)的插入及更新為例分析了MySQL存儲過程中游標的使用技巧,需要的朋友可以參考下
    2015-07-07
  • MySQL的安裝以及基本的管理命令和設置

    MySQL的安裝以及基本的管理命令和設置

    這篇文章主要介紹了MySQL的安裝以及基本的管理命令和設置,是搭建MySQL環(huán)境的基礎,需要的朋友可以參考下
    2015-11-11
  • MySQL Semisynchronous Replication介紹

    MySQL Semisynchronous Replication介紹

    這篇文章主要介紹了MySQL Semisynchronous Replication介紹,本文講解了Semisynchronous Replication 定義、,需要的朋友可以參考下
    2015-05-05
  • MySQL實現(xiàn)字符串的拼接,截取,替換,查找位置的操作

    MySQL實現(xiàn)字符串的拼接,截取,替換,查找位置的操作

    這篇文章主要介紹了MySQL實現(xiàn)字符串的拼接,截取,替換,查找位置的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • MySql學習筆記之事務隔離級別詳解

    MySql學習筆記之事務隔離級別詳解

    這篇文章主要給大家介紹了關于MySql學習筆記之事務隔離級別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • 詳解MySQL中default的使用

    詳解MySQL中default的使用

    這篇文章主要介紹了MySQL中default的使用,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-05-05

最新評論