日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql8秒级加字段_Mysql8.0秒级加字段

發布時間:2023/12/10 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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秒级加字段的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。