标签: MySQL 8.0
-
在 MySQL 8.0 环境中,包含 10000 个参数的 IN 条件查询导致执行时间过长,引发接口响应超时。经排查发现,将参数数量减少至 5 个后响应恢复正常,且数据表记录总数为 2000 万条。分析认为 SQL 未正确使用索引,通过调整 SQL 语句强制使用 USE INDEX,有效解决了查询耗时过长和超时问题。
-
针对 MySQL 8.0 中接口响应超时的问题,分析发现 count(*) SQL 在千万级数据表下耗时 54 秒。通过在查询中添加 shipping_type 索引条件,耗时降至 3 秒。为保持 SQL 结构统一,最终采用添加 WHERE id > 0 的方式优化,查询耗时 4 秒,达到了预期的性能提升效果。
-
在 MySQL 8 中,针对 B 表缺少 A 表主键 ID 但存在其他两个字段的情况,需要基于这两个字段查询 A 表记录。文章尝试在 SQL 语句中将 in 条件用于多个字段,测试显示查询执行成功且结果符合预期。
-
在 Laravel 9 配合 MySQL 8.0 环境中,设置 datetime 字段默认值为 0000-00-00 00:00:00 时遇到了 1067 语法错误。文章记录了修改 my.ini 配置文件移除 NO_ZERO_IN_DATE 与 NO_ZERO_DATE 模式并重启电脑的过程,尽管手动执行 SQL 成功,但程序运行问题依旧。最终通过调整迁移文件,放弃设置该默认值解决了报错。
-
在 Windows 10 中尝试将 MySQL 5.7 直接更新至 8.0 时,安装向导提示只能升级至 5.7.44 版本,无法跨版本更新。为确保升级成功,采取了先备份所有数据库,然后卸载系统中所有以 MySQL 开头的软件的方案。卸载完成后重新运行安装程序,此时不再提示升级,而是显示全新安装选项,选择 Full 类型进行安装,安装列表确认了将部署 MySQL 8.0。
-
在 Navicat for MySQL 中将表从 5.7 版本数据库复制至 8.0 版本时,因包含默认时间为 0000-00-00 00:00:00 的数据而报错 1292。尝试在 Homestead 配置中禁用 MySQL 8 无果后,对比两个版本的 sql_mode 发现 8.0 默认启用了 NO_ZERO_IN_DATE 和 NO_ZERO_DATE。通过修改目标数据库的 sql_mode,移除上述两项配置并重新连接,再次执行复制操作成功解决了该问题。
