Mysql8秒级加字段_Mysql8.0秒级加字段
Mysql 8.0版本合并了騰訊互娛數據庫團隊的Patch,可以實現秒級添加字段,這個功能可謂是mysql數據庫攻城獅的福音,解決了之前5.6,5.7版本添加字段很高的運維成本。
下面是驗證mysql8.0版本秒級添加字段的過程
首先用sysbench模擬一張12G左右的大表出來,數據量在5000W
nohup sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=10.10.57.205 --mysql-port=3306 --mysql-user=root --mysql-password='Test1234!' --oltp-test-mode=complex --oltp-tables-count=1 --oltp-table-size=50000000 --threads=10 prepare
登錄數據庫,查看一下sysbench生成的表
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sbtest |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> use sbtest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------+
| Tables_in_sbtest |
+------------------+
| sbtest1 |
+------------------+
1 row in set (0.00 sec)
mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
| 50000000 |
+----------+
1 row in set (17.84 sec)
查看一下表對應的文件大小
[root@cbov10-205 sbtest]# du -sh *
12G sbtest1.ibd
查看測試的表結構
mysql> show create table sbtest1\G;
*************************** 1. row ***************************
Table: sbtest1
Create Table: CREATE TABLE `sbtest1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`k` int(10) unsigned NOT NULL DEFAULT '0',
`c` char(120) NOT NULL DEFAULT '',
`pad` char(60) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `k_1` (`k`)
) ENGINE=InnoDB AUTO_INCREMENT=50000001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci MAX_ROWS=1000000
1 row in set (0.00 sec)
在12G大小的表上添加一列,果然是秒級返回
mysql> alter table sbtest1 add column name char(60) not null default '';
Query OK, 0 rows affected (0.18 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show create table sbtest1\G;
*************************** 1. row ***************************
Table: sbtest1
Create Table: CREATE TABLE `sbtest1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`k` int(10) unsigned NOT NULL DEFAULT '0',
`c` char(120) NOT NULL DEFAULT '',
`pad` char(60) NOT NULL DEFAULT '',
`name` char(60) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `k_1` (`k`)
) ENGINE=InnoDB AUTO_INCREMENT=50000001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci MAX_ROWS=1000000
1 row in set (0.00 sec)
這個功能特性非常的好用,如果有條件的同學,可以選擇將生產的mysql數據庫版本升級到mysql8,能減少很多運維工作。
總結
以上是生活随笔為你收集整理的Mysql8秒级加字段_Mysql8.0秒级加字段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建行双币信用卡有哪些 年费收取标准你必须
- 下一篇: linux cmake编译源码,linu