首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL创建表非常慢

MySQL创建表非常慢
EN

Database Administration用户
提问于 2018-09-26 20:25:30
回答 1查看 996关注 0票数 3

在我的家庭机器上,运行Ubuntu18.04和MySQL版本8.0.12的硬件、表创建、数据库创建等都非常缓慢。在我的另一台拥有较旧硬件(较慢的SSD)、较旧版本的MySQL (5.7)和Ubuntu16.04的计算机上,一切都要快得多。我将/etc/mysql/mysql.conf/mysqld.cnf中的配置从速度更快的计算机复制到速度较慢的计算机中,但没有任何变化。这个问题是从哪里来的呢?

例如

代码语言:javascript
复制
CREATE TABLE blah (id BIGINT UNSIGNED NOT NULL PRIMARY KEY) ENGINE='InnoDB';

完成大约0.12~0.90秒,并从

代码语言:javascript
复制
SHOW PROFILE for query 7;

我得到了

代码语言:javascript
复制
'starting', '0.000132'
'checking permissions', '0.000025'
'Opening tables', '0.000877'
'creating table', '0.092163'
'After create', '0.007109'
'query end', '0.000024'
'closing tables', '0.000007'
'freeing items', '0.000019'
'cleaning up', '0.000013'

与我的工作机器相比,这是非常慢的,我的工作机器对0.009.0 1~0.009执行相同的查询。我怎样才能知道问题从何而来?

EN

回答 1

Database Administration用户

发布于 2018-09-28 19:04:59

我会把钱花在MySQL 8.0的新特性上,比如原子DDL https://dev.mysql.com/doc/refman/8.0/en/atomic-ddl.html

MySQL 8.0支持原子数据定义语言(DDL)语句。这个特性被称为原子DDL。原子DDL语句将数据字典更新、存储引擎操作和与DDL操作关联的二进制日志写入组合到单个原子事务中。事务要么提交,对数据字典、存储引擎和二进制日志进行可适用的更改,要么回滚,即使服务器在操作期间停止。原子DDL是通过在MySQL 8.0中引入MySQL数据字典而实现的。在早期的MySQL版本中,元数据存储在元数据文件、非事务性表和特定于存储引擎的字典中,这就需要中间提交。MySQL数据字典提供的集中式、事务性元数据存储消除了这一障碍,使将DDL语句操作重组为原子事务成为可能。

注意元数据文件对数据字典的更改。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/218658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档