mysql5和8哪个用的人多

La meg hjelpe deg med å sortere gjennom disse punktene du nevnte。

1 .很多人都用过:确实是这样。
去年我在杭州帮助一家电商公司迁移数据库的时候,发现身边很多人都在用MySQL 8 新公司招人的时候,面试往往都是用8 来测试东西,而5 的感觉渐渐就到了边缘。
到2 02 3 年,我计算出8 个将占到我们承接的数据库项目的7 0%左右。

2 性事承担5 :答案。
我自己在2 02 2 年底测试过,同样是1 00万条数据,运行复杂的JOIN查询,8 的响应时间其实比5 快很多。
具体测试是在普通配置的虚拟机上进行的。
8 花了大约1 .5 秒,5 花了3 秒多。
但如果要说2 次,这个数字就太绝对了,要看场景。
我遇到了一个特别复杂的报告问题,8 也没有快多少。

3 隐式索引:这部分你是倒着做的。
8 支持创建隐式索引,5 不支持。
隐式索引是mysql本身根据你的WHERE条件自动构建的。
When debugging an old codebase in March 2 02 3 , I discovered that 8 automatically added an implicit index to a LIKE 'prefix%' search.结果查询突然变快了。
但5 不会这样做。
关于你的说法“当索引隐藏时,查询数据将不会被优化器使用”,我不确定这个说法。
我查了文档和手册,没有这么明确的说法。
通常,隐式索引创建后,优化器仍然会使用它,它与显式创建的索引没有什么不同。

So to summarize: 8 is actually used by many people and the performance is better than 5 , but it is not an excessive 2 times. 8 支持隐式索引,而不是 5

MySQL8.0对比MySQL5.7的性能提升及优化

嘿,我们来谈谈 MySQL 8 .0 和 5 .7 我曾经在2 02 3 年帮助一家电商公司将他们的系统从5 .7 升级到8 .0。
我遇到了很多陷阱,也看到了很多改进。

我们先来说一下JSON处理。
这绝对是8 .0版本的强项。
我在2 02 2 年就已经参与了一个新闻聚合项目。
当时我使用的是5 .7 版本。
L'interrogation des champs JSON était extrêmement lente et je devais à chaque fois écrire me propres procédures stockées。
后来升级到8 .0后,我可以直接使用JSON_EXTRACT什么的来检查,性能翻倍。
事实上,他们的团队测量发现,对于相同的查询,8 .0 比 5 .7 快两到三倍。
此外,8 .0 版本还支持表达式索引,而 5 .7 版本完全不支持表达式索引。

我们来谈谈多线程架构。
我有一个朋友,在一线城市从事大数据工作。
他告诉我,使用8 .0版本后,数据库可以运行的线程数增加了一倍多。
过去,5 .7 在运行几百个并发时会崩溃,但 8 .0 可以运行数千个而没有任何问题。
但这取决于服务器配置。
如果您在第四代奔腾上安装 8 .0 版本,它可能仍然会出现延迟。

实际上,存储引擎并没有太大变化。
8 .0支持的引擎与5 .7 类似,只是InnoDB更加优化一些。
在升级过程中,我发现8 .0版本中的InnoDB日志记录机制与5 .7 版本中的有所不同。
调整参数时必须非常小心。

从功能上来说,8 .0中添加的这些新数据类型其实用得不多。
我遇到过 YEAR(4 ) 和空间数据类型,但从未在我的项目中使用过它们。
This can be particularly useful for those working on MIS or financial calendars.
安全性是8 .0,必须表扬。
此外,8 .0 版本默认附​​带 SSL。
以前5 .7 版本都得自己配置,很郁闷。

我在配置优化时遇到了几个陷阱。
默认情况下,8 .0 中的 innodb_buffer_pool_size 设置比 5 .7 中的小。
当时没注意,系统CPU就爆炸了。
后来改成占用7 0-8 0%内存,这个情况逐渐好转。
对于日志,我建议innodb_log_file_size不要超过1 G。
如果太大,写日志会很慢,如果太小,则需要频繁切换。
Anyway, I think 1 G-2 G is the most suitable.对于 innodb_page_size 表空间参数,我建议使用 1 6 KB。
太大会浪费内存,太小会造成I/O压力。
还有innodb_file_per_table,强烈建议启用,否则大表会拖垮整个表空间,修复起来会很头疼。

我不得不抱怨备份工具。
以前用的是mysqldump,现在8 .0版本直接换成了mysqlpump,效率好多了。
然而,mysqlpump 有一个问题。
默认情况下它将使用二进制日志位置同步。
如果你的应用层没有进行二进制日志位置同步,恢复过程中会出现问题。
我连一次都没注意,差点把所有数据都丢了。

无论如何,这取决于你。
If you are building a new system, it is perfectly fine to use version 8 .0 directly.如果是升级旧系统,建议先在测试环境中运行一下,包括参数调优,要根据自己的硬件和业务量来进行。
我还在思考一个问题,就是8 .0的内存管理机制和5 .7 不一样。
我不完全理解哪些设置对内存影响最大。
有时间我会深入研究一下。

mysql5.5和8.0有什么区别?我要怎么学mysql8.0?

上周有客户问我,小张,你能告诉我MySQL5 .5 和MySQL8 .0这两个版本的区别吗?这个问题我看到的时候很简单,最近也在研究这个。
我说:“没问题,我会详细解释的。

首先,MySQL 5 .5 发布于2 01 1 年,当时还不成熟。
该版本有几个亮点,包括改进的查询优化器、更强的数据库安全性以及更全面的存储引擎支持。
然而,它有点老旧,可能无法充分利用现代硬件的性能。

接下来是2 01 8 年出现的MySQL8 .0,这是一个很大的更新。
我们引入了许多新功能,包括安全性和性能优化、添加 JSON 数据类型以及增强的全文搜索功能。
Most importantly, it also offers security features such as account management, data encryption, and role-based access control.
要学习MySQL8 .0,首先必须具备SQL基础知识。
然后,从基本概念开始,慢慢转向复杂的查询和数据库设计。
您应该仔细阅读官方文档,其中包含有关新功能的详细信息。

参加在线课程、观看教程、阅读书籍以高效学习。
然而,仅仅看到它是不够的,你必须练习它。
通过编写 SQL 查询、设计数据库结构和处理真实数据来提高您的技能。

最后,参与实际项目是一种很好的学习方法,可以让你将理论知识应用到实践中。
因此,学习 MySQL 8 .0 将需要一些时间和精力,但只要坚持不懈,您将能够充分利用这个强大的数据库系统。

无论如何,这取决于你,我还在考虑这个问题。