亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

一、Mysql分區(qū)類型

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

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

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

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

二、RANGE分區(qū)

缺點(diǎn):1、只能通過(guò)整形類型的主鍵建進(jìn)行分區(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)建存儲(chǔ)過(guò)程
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;

-- 調(diào)用存儲(chǔ)過(guò)程
CALL PROC_USER_INSERT(1,5000);

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

4、如果sql語(yǔ)句有問(wèn)題,那么會(huì)走所有區(qū)。會(huì)很危險(xiǎn)。所以分區(qū)表后,select語(yǔ)句必須走分區(qū)鍵。

5、查看當(dāng)前表的分區(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)點(diǎn):分區(qū)數(shù)據(jù)比較平均

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

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)點(diǎn):除了text,blob類型字段,其他類型字段都可以進(jìn)行分區(qū)

缺陷:不支持text,blob(二進(jìn)制)類型的字段進(jìn)行分區(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)點(diǎn):支持枚舉類型的字段進(jìn)行分區(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、查看當(dāng)前表的分區(qū)情況

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

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

總結(jié)

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

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

友情鏈接

http://chabaoo.cn/article/244256.htm

http://chabaoo.cn/article/244313.htm

http://chabaoo.cn/article/244318.htm

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

相關(guān)文章

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

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

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

    mysql連接查詢、聯(lián)合查詢、子查詢?cè)砼c用法實(shí)例詳解

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

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

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

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

    這篇文章主要介紹了mysql如何利用Navicat導(dǎo)出和導(dǎo)入數(shù)據(jù)庫(kù)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Mysql存儲(chǔ)過(guò)程中游標(biāo)的用法實(shí)例

    Mysql存儲(chǔ)過(guò)程中游標(biāo)的用法實(shí)例

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

    MySQL的安裝以及基本的管理命令和設(shè)置

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

    MySQL Semisynchronous Replication介紹

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

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

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

    MySql學(xué)習(xí)筆記之事務(wù)隔離級(jí)別詳解

    這篇文章主要給大家介紹了關(guān)于MySql學(xué)習(xí)筆記之事務(wù)隔離級(jí)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 詳解MySQL中default的使用

    詳解MySQL中default的使用

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

最新評(píng)論