一、 数据字典与原子DDL mysql的所有表结构定义的元数据存放在mysql.idb中。整合了存储有关数据库对象信息的事务数据字典,所有的元数据都用InnoDB引擎进行存储.看下图,我创建了一个 database business,你会发现表的定义文件*.frm没有了。
-
[root
@yw
-gz
-hd
-test
-211 mysql
]
# ls
auto
.cnf binlog
.
index client
-cert
.pem ibdata1 mysql public_key
.pem undo_001
binlog
.000001 business client
-
key
.pem ib_logfile0 mysql
.ibd server
-cert
.pem undo_002
binlog
.000002 ca
-
key
.pem error
.
log ib_logfile1 performance_schema server
-
key
.pem yw
-gz
-hd
-test
-211
.pid
binlog
.000003 ca
.pem ib_buffer_pool ibtmp1 private_key
.pem sys
[root
@yw
-gz
-hd
-test
-211 mysql
]
# ls business
/
job_execution_log
.ibd t_gw_remit_query
.ibd t_mer_transfer
.ibd
job_status_trace_log
.ibd t_gw_remit_serial
.ibd t_sms_gateway
.ibd
t_bal_sett_report
.ibd t_gw_serial
.ibd t_sms_recode
.ibd
t_boss_logger
.ibd t_mail_record
.ibd t_sms_service
.ibd
在执行DDL之类的操作时,很难做到crash-safe,更别说让DDL具备事务性了。
在MySQL8.0之前,DDL操作在server crash的情况下,会遗留.frm,.ibd文件。MySQL8.0 能实现原?DDL(包括 DROP TABLE, DROP SCHEMA, CREATE TABLE, TRUNCATE TABLE, ALTER TABLE),在server crash的情况下,不会遗留.frm,.ibd临时文件,保证了DDL操作的原子性!
二 、字符集支持(Character set support)
数据库的默认字符集 latin1 到 utf8mb4 。
三、重构sql分析器,提升性能
改进SQL分析器。旧的分析器由于其语法复杂性和自顶向下的分析方式从而有严重的限制,导致难以维护和扩展。
四、onlineDDL 的巨大改进。8.0.12版本将会增加 ALGORITHM=INSTANT 方法。我们知道,mysql的对表结构的更改,一直让DBA头疼。目前有2两种ALGORITHM [=] {INPLACE|COPY} 。instant是比inplace方法更改,锁定表的时间更短。
五、innodb 增强,提升性能
(1)innodb_undo_tablespaces的最小值为2,并且不再允许将innodb_undo_tablespaces设置为0。 最小值2确保回滚段始终在撤消表空间中创建,而不是在系统表空间中创建
(2)InnoDB临时表都将在共享临时表空间ibtmp1中创建
六、调整back_log的默认值,保持和 max_connections一致,增强突发流量带来的连接处理容量。这告诉我们,有些参数是随着另外一个参数动态调整的。
新增innodb_dedicated_server,让InnoDB根据服务器上检测到的内存量自动配置innodb_buffer_pool_size,innodb_log_file_size,innodb_flush_method
-
原来是:来试验一下:
mysql
> select
* from `performance_schema`
.global_variables where VARIABLE_NAME
in
(
'innodb_dedicated_server'
,
'innodb_buffer_pool_size'
,
'innodb_buffer_pool_instances'
)
;
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
| VARIABLE_NAME
| VARIABLE_VALUE
|
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
| innodb_buffer_pool_instances
| 1
|
| innodb_buffer_pool_size
| 134450944
|
| innodb_dedicated_server
| OFF
|
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
3 rows
in set
(0
.00 sec
)
后来是
mysql
> select
* from `performance_schema`
.global_variables where VARIABLE_NAME
in
(
'innodb_dedicated_server'
,
'innodb_buffer_pool_size'
,
'innodb_buffer_pool_instances'
)
;
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
| VARIABLE_NAME
| VARIABLE_VALUE
|
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
| innodb_buffer_pool_instances
| 8
|
| innodb_buffer_pool_size
| 6442450944
|
| innodb_dedicated_server
| ON
|
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
3 rows
in set
(0
.00 sec
)
-
mysql
> set persist autocommit
=1
;
Query OK
, 0 rows affected
(0
.00 sec
)
mysql
>
InnoDB性能提升
废除buffer pool mutex,将原来一个mutex拆分成多个,提高并发
MySQL 8.0 版本开始支持期待已久直方图。优化器会利用column_statistics的数据,判断字段的值的分布,得到更准确的执行计划。 这些有很多的关于性能提升的数据,最后,我将用压力测试工具来实际压测一下,看看oracle公司有没有撒谎。
编辑推荐:
- mysql8.0.11新特性测试03-01
- xtrabackup备份mysql以及创建自动定时任务03-01
- 数据库实验室挑战任务-3(阿里云)03-01
- MYSQL5.7 ROOT密码修改教程03-01
- MySQL参数设置最佳实践03-01
- windows mysqldump备份脚本03-01
- 如何在MySQL中开启慢查询日志?03-01
- 数据库实验室挑战任务-初级任务03-01
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- mysql8.0.11新特性测试
mysql8.0.11新特性测试
26-03-01 - 数据库实验室挑战任务-3(阿里云)
数据库实验室挑战任务-3(阿里云)
26-03-01 - 数据库实验室挑战任务-初级任务
数据库实验室挑战任务-初级任务
26-03-01 - 分布式消息中间件(2):Kafka系统学习—集群搭建与使用、副本机制和实时日志统计流程
- 云数据库有什么用?这三点你一定要知道
云数据库有什么用?这三点你一定要知道
26-03-01 - 集成电路SAP Business One系统生成
集成电路SAP Business One系统生成
26-03-01 - Mysql输出中文显示乱码处理
Mysql输出中文显示乱码处理
26-03-01 - 云数据库服务器哪个好?考察这三方面!
云数据库服务器哪个好?考察这三方面!
26-03-01 - MySQL数据迁移那些事儿
MySQL数据迁移那些事儿
26-03-01 - Linux下数据库名及表名区分大小写设置
Linux下数据库名及表名区分大小写设置
26-03-01
