Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Other Optimization Tips

10.2.7 其他优化技巧

本节列出了许多改进查询处理速度的杂项技巧:

  • 如果您的应用程序执行多个数据库请求以执行相关的更新操作,将语句组合成存储过程可以提高性能。同样,如果您的应用程序基于多个列值或大量数据计算单个结果,将计算组合成可加载的函数也可以提高性能。然后,快速数据库操作将可供其他查询、应用程序和不同编程语言的代码重用。请参阅 第 27.2 节,“使用存储过程”将函数添加到 MySQL 以获取更多信息。

  • 要修复 ARCHIVE 表中的压缩问题,请使用 OPTIMIZE TABLE。请参阅 第 18.5 节,“ARCHIVE 存储引擎”

  • 如果可能,将报告分类为 实时统计,其中统计报告所需的数据仅来自周期性生成的摘要表中的实时数据。

  • 如果您有不适合行和列表结构的数据,可以将数据打包并存储在 BLOB 列中。在这种情况下,您必须在应用程序中提供代码来打包和解包信息,但这可能会节省读取和写入相关值集的 I/O 操作。

  • 对于 Web 服务器,存储图像和其他二进制资产作为文件,以数据库中存储路径名,而不是文件本身。大多数 Web 服务器比数据库内容更善于缓存文件,因此使用文件通常更快。(虽然您必须自己处理备份和存储问题。)

  • 如果您需要非常高的速度,请查看 MySQL 的低级接口。例如,通过直接访问 MySQL InnoDBMyISAM 存储引擎,可以比使用 SQL 接口获得实质性的速度提升。

    同样,对于使用 NDBCLUSTER 存储引擎的数据库,您可能希望调查使用 NDB API 的可能性(请参阅 MySQL NDB Cluster API 开发者指南)。

  • 复制可以为某些操作提供性能优势。您可以将客户端检索分布在副本中,以分配负载。要避免在备份时减慢源服务器,可以使用副本进行备份。请参阅 第 19 章 复制