Documentation Home
MySQL 8.0 参考手册  / 附录 A MySQL 8.0 常见问题解答  /  A.1 MySQL 5.7 FAQ:一般

A.1 MySQL 5.7 FAQ:一般

A.1.1. 哪个版本的 MySQL 是生产就绪 (GA)?
A.1.2. MySQL 5.7 可以做子查询吗?
A.1.3. MySQL 5.7 可以进行多表插入、更新和删除吗?
A.1.4. MySQL 5.7 有查询缓存吗?它适用于服务器、实例或数据库吗?
A.1.5. MySQL 5.7 有序列吗?
A.1.6. MySQL 5.7 是否具有带几分之一秒的 NOW() 函数?
A.1.7. MySQL 5.7 是否支持多核处理器?
A.1.8。 为什么我看到 mysqld 有多个进程?
A.1.9. MySQL 5.7 可以执行 ACID 事务吗?

A.1.1.

哪个版本的 MySQL 是生产就绪 (GA)?

支持 MySQL 8.0、5.7 和 MySQL 5.6 用于生产。

MySQL 8.0 与 MySQL 8.0.11 一起获得普遍可用性 (GA) 状态,MySQL 8.0.11 于 2018 年 4 月 19 日发布用于生产用途。

MySQL 5.7 与 MySQL 5.7.9 一起获得普遍可用性 (GA) 状态,MySQL 5.7.9 于 2015 年 10 月 21 日发布用于生产用途。

MySQL 5.6 与 MySQL 5.6.10 一起获得普遍可用性 (GA) 状态,MySQL 5.6.10 于 2013 年 2 月 5 日发布用于生产用途。

MySQL 5.5 与 MySQL 5.5.8 一起获得普遍可用性 (GA) 状态,MySQL 5.5.8 于 2010 年 12 月 3 日发布用于生产用途。MySQL 5.5 的积极开发已经结束。

MySQL 5.1 与 MySQL 5.1.30 一起获得普遍可用性 (GA) 状态,MySQL 5.1.30 于 2008 年 11 月 14 日发布用于生产。MySQL 5.1 的积极开发已经结束。

MySQL 5.0 与 MySQL 5.0.15 一起获得普遍可用性 (GA) 状态,MySQL 5.0.15 于 2005 年 10 月 19 日发布用于生产。MySQL 5.0 的积极开发已经结束。

A.1.2.

MySQL 5.7 可以做子查询吗?

是的。请参阅第 13.2.10 节,“子查询”

A.1.3.

MySQL 5.7 可以进行多表插入、更新和删除吗?

是的。有关执行多表更新所需的语法,请参阅第 13.2.11 节,“UPDATE 语句”;对于执行多表删除所需的,请参阅第 13.2.2 节,“DELETE 语句”

可以使用触发器来完成多表插入,触发器的FOR EACH ROW子句 在一个块中包含多个INSERT语句 。BEGIN ... END请参阅 第 23.3 节,“使用触发器”

A.1.4.

MySQL 5.7 有查询缓存吗?它适用于服务器、实例或数据库吗?

是的。(然而,查询缓存从 MySQL 5.7.20 开始被弃用,并在 MySQL 8.0 中被删除。)查询缓存在服务器级别运行,缓存与原始查询字符串匹配的完整结果集。如果进行了完全相同的查询(这种情况经常发生,尤其是在 Web 应用程序中),则不需要解析或执行;结果直接从缓存中发送。可以使用各种调整选项。参见 第 8.10.3 节,“MySQL 查询缓存”

A.1.5.

MySQL 5.7 有序列吗?

没有。但是,MySQL 有一个AUTO_INCREMENT 系统,在 MySQL 5.7 中,它还可以处理多源复制设置中的插入。使用 auto_increment_incrementauto_increment_offset系统变量,您可以设置每个服务器生成不与其他服务器冲突的自动增量值。该 auto_increment_increment值应该大于服务器的数量,并且每个服务器应该有一个唯一的偏移量。

A.1.6.

MySQL 5.7 是否具有 NOW()秒的小数部分的功能?

是的,请参阅第 11.2.7 节,“时间值中的小数秒”

A.1.7.

MySQL 5.7 是否支持多核处理器?

是的。MySQL 是完全多线程的,并利用所有可用的 CPU。并非所有 CPU 都可用;现代操作系统应该能够利用所有底层 CPU,但也可以将进程限制为特定 CPU 或 CPU 集。

在 Windows 上,目前对mysqld可以使用的(逻辑)处理器的数量有限制:单个处理器组,限制为最多 64 个逻辑处理器。

可以通过以下方式看到多核的使用:

  • 单个内核通常用于服务从一个会话发出的命令。

  • 一些后台线程对额外核心的使用有限;例如,保持后台 I/O 任务的移动。

  • 如果数据库受 I/O 限制(CPU 消耗小于容量),添加更多 CPU 是徒劳的。如果数据库被划分为 I/O 绑定部分和 CPU 绑定部分,添加 CPU 可能仍然有用。

A.1.8。

为什么我看到mysqld有多个进程?

mysqld是单进程程序,而不是多进程程序,并且不会派生或启动其他进程。然而, mysqld是多线程的,一些进程报告系统实用程序为多线程进程的每个线程显示单独的条目,这可能导致出现多个mysqld 进程,而实际上只有一个。

A.1.9.

MySQL 5.7 可以执行 ACID 事务吗?

是的。所有当前的 MySQL 版本都支持事务。InnoDB存储引擎提供具有行级锁定、多版本控制、非锁定可重复读取和所有四个 SQL 标准隔离级别的完整 ACID 事务 。

NDB存储引擎只支持 事务READ COMMITTED隔离级别。