Documentation Home
MySQL 8.0 参考手册  / 第8章优化  / 8.2 优化SQL语句  /  8.2.7 其他优化技巧

8.2.7 其他优化技巧

本节列出了一些提高查询处理速度的杂项技巧:

  • 如果您的应用程序发出多个数据库请求来执行相关更新,将这些语句组合到一个存储的例程中可以帮助提高性能。同样,如果您的应用程序根据多个列值或大量数据计算单个结果,将计算组合到一个可加载函数中可以提高性能。由此产生的快速数据库操作可供其他查询、应用程序甚至用不同编程语言编写的代码重用。有关详细信息,请参阅 第 25.2 节,“使用存储例程”向 MySQL 添加函数

  • 要修复表出现的任何压缩问题 ARCHIVE,请使用 OPTIMIZE TABLE. 参见 第 16.5 节,“ARCHIVE 存储引擎”

  • 如果可能,将报告分类为实时统计,其中统计报告所需的数据仅根据实时数据定期生成的汇总表创建。

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

  • 使用 Web 服务器,将图像和其他二进制资产存储为文件,路径名存储在数据库中而不是文件本身。与数据库内容相比,大多数 Web 服务器更擅长缓存文件,因此使用文件通常更快。(尽管在这种情况下您必须自己处理备份和存储问题。)

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

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

  • 复制可以为某些操作提供性能优势。您可以在副本之间分配客户端检索以分散负载。为避免在进行备份时降低源的速度,您可以使用副本进行备份。请参阅第 17 章,复制