深入MySQL--谈谈MySQL 8.0新特性

本帖最后由 lee 于 2020-9-9 23:54 编辑

今天翻看MySQL8.0的官方文档的时候,看到了MySQL8.0的几个新特性,简单测了下,跟MySQL5.7做了下对比,测试的结果如下:

1、数据字典使用事务性质的表来代替之前非事务性质的表,以MySQL8.0.19和MySQL5.7.16为例,我们可以看下这两个版本的数据字典mysql库里面的相关表的存储引擎。


MySQL5.7.16
  1. +--------------------+---------------------------------------+--------+
  2. | mysql              | columns_priv                          | MyISAM |
  3. | mysql              | db                                    | MyISAM |
  4. | mysql              | engine_cost                           | InnoDB |
  5. | mysql              | event                                 | MyISAM |
  6. | mysql              | func                                  | MyISAM |
  7. | mysql              | general_log                           | CSV    |
  8. | mysql              | gtid_executed                         | InnoDB |
  9. | mysql              | help_category                         | InnoDB |
  10. | mysql              | help_keyword                          | InnoDB |
  11. | mysql              | help_relation                         | InnoDB |
  12. | mysql              | help_topic                            | InnoDB |
  13. | mysql              | innodb_index_stats                    | InnoDB |
  14. | mysql              | innodb_table_stats                    | InnoDB |
  15. | mysql              | ndb_binlog_index                      | MyISAM |
  16. | mysql              | plugin                                | InnoDB |
  17. | mysql              | proc                                  | MyISAM |
  18. | mysql              | procs_priv                            | MyISAM |
  19. | mysql              | proxies_priv                          | MyISAM |
  20. | mysql              | server_cost                           | InnoDB |
  21. | mysql              | servers                               | InnoDB |
  22. | mysql              | slave_master_info                     | InnoDB |
  23. | mysql              | slave_relay_log_info                  | InnoDB |
  24. | mysql              | slave_worker_info                     | InnoDB |
  25. | mysql              | slow_log                              | CSV    |
  26. | mysql              | tables_priv                           | MyISAM |
  27. | mysql              | time_zone                             | InnoDB |
  28. | mysql              | time_zone_leap_second                 | InnoDB |
  29. | mysql              | time_zone_name                        | InnoDB |
  30. | mysql              | time_zone_transition                  | InnoDB |
  31. | mysql              | time_zone_transition_type             | InnoDB |
  32. | mysql              | user                                  | MyISAM |
  33. +--------------------+---------------------------------------+--------+
复制代码



MySQL8.0.19版本:
  1. | mysql              | columns_priv                          | InnoDB |
  2. | mysql              | component                             | InnoDB |
  3. | mysql              | db                                    | InnoDB |
  4. | mysql              | default_roles                         | InnoDB |
  5. | mysql              | engine_cost                           | InnoDB |
  6. | mysql              | func                                  | InnoDB |
  7. | mysql              | general_log                           | CSV    |
  8. | mysql              | global_grants                         | InnoDB |
  9. | mysql              | gtid_executed                         | InnoDB |
  10. | mysql              | help_category                         | InnoDB |
  11. | mysql              | help_keyword                          | InnoDB |
  12. | mysql              | help_relation                         | InnoDB |
  13. | mysql              | help_topic                            | InnoDB |
  14. | mysql              | innodb_index_stats                    | InnoDB |
  15. | mysql              | innodb_table_stats                    | InnoDB |
  16. | mysql              | password_history                      | InnoDB |
  17. | mysql              | plugin                                | InnoDB |
  18. | mysql              | procs_priv                            | InnoDB |
  19. | mysql              | proxies_priv                          | InnoDB |
  20. | mysql              | role_edges                            | InnoDB |
  21. | mysql              | server_cost                           | InnoDB |
  22. | mysql              | servers                               | InnoDB |
  23. | mysql              | slave_master_info                     | InnoDB |
  24. | mysql              | slave_relay_log_info                  | InnoDB |
  25. | mysql              | slave_worker_info                     | InnoDB |
  26. | mysql              | slow_log                              | CSV    |
  27. | mysql              | tables_priv                           | InnoDB |
  28. | mysql              | time_zone                             | InnoDB |
  29. | mysql              | time_zone_leap_second                 | InnoDB |
  30. | mysql              | time_zone_name                        | InnoDB |
  31. | mysql              | time_zone_transition                  | InnoDB |
  32. | mysql              | time_zone_transition_type             | InnoDB |
  33. | mysql              | user                                  | InnoDB |
  34. +--------------------+---------------------------------------+--------+
复制代码


可以看到,MySQL8.0.19版本中,除了slow_log和general_log表使用了CVS的存储引擎,其他表都采用Innodb的存储引擎,而MySQL5.7.16版本中的字典表还有很多都采用了MyISAM存储引擎,因为innodb表是事务安全的,支持crash_safe故障自愈,而MyISAM表不支持事务,所以从元数据的安全性来讲,MySQL8.0.19版本的元数据安全性要更好。
游客,如果您要查看本帖隐藏内容请回复
标签: 暂无标签
lee

写了 75 篇文章,拥有财富 290,被 8 人关注

转播转播 分享分享 分享聚知识
回复

使用道具

成为第一个吐槽的人

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈