Mysql 8.0版本開始,不允許創建 MyISAM 分區表


從MySQL 8.0版本開始,就不允許創建 MyISAM 分區表了,只允許創建已經實現了本地分區策略的引擎。

到目前為止,只有InnoDB和NDB這兩個引擎支持本地分區策略。

【1】實際測試

(1)數據庫版本號

# 獲取版本號
SELECT VERSION(); # 8.0.12

(2)建表(InnoDB引擎

CREATE TABLE `t_innodb` (
  `ftime` DATETIME NOT NULL,
  `c` INT(11) DEFAULT NULL,
  KEY (`ftime`)
) ENGINE=INNODB DEFAULT CHARSET=latin1
PARTITION BY RANGE (YEAR(ftime))
(PARTITION p_2017 VALUES LESS THAN (2017) ENGINE = INNODB,
 PARTITION p_2018 VALUES LESS THAN (2018) ENGINE = INNODB,
 PARTITION p_2019 VALUES LESS THAN (2019) ENGINE = INNODB,
 PARTITION p_others VALUES LESS THAN MAXVALUE ENGINE = INNODB);

創建成功。

(3)建表(MyiSAM引擎

CREATE TABLE `t_myisam` (
  `ftime` DATETIME NOT NULL,
  `c` INT(11) DEFAULT NULL,
  KEY (`ftime`)
) ENGINE=INNODB DEFAULT CHARSET=latin1
PARTITION BY RANGE (YEAR(ftime))
(PARTITION p_2017 VALUES LESS THAN (2017) ENGINE = MYISAM,
 PARTITION p_2018 VALUES LESS THAN (2018) ENGINE = MYISAM,
 PARTITION p_2019 VALUES LESS THAN (2019) ENGINE = MYISAM,
 PARTITION p_others VALUES LESS THAN MAXVALUE ENGINE = MYISAM);

創建失敗:

錯誤代碼:1497
The mix of handlers in the partitions is not allowed in this version of MySQL

(4)建表(不支持本地分區策略)

CREATE TABLE `t_partition_by_hash`
(
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `sName` VARCHAR(10) NOT NULL,
  `sAge` INT(2) UNSIGNED ZEROFILL NOT NULL,
  `sAddr` VARCHAR(20) DEFAULT NULL,
  `sGrade` INT(2) NOT NULL,
  `sStuId` INT(8) DEFAULT NULL,
  `sSex` INT(1) UNSIGNED DEFAULT NULL
) ENGINE=MYISAM PARTITION BY HASH(id) PARTITIONS 4;

創建失敗:

錯誤代碼:1178
The storage engine for the table doesn't support native partitioning

 

Good Good Study, Day Day Up.

順序 選擇 循環 總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM