MySQL 8.4 Release Notes
10.2.7 其他优化Tips
本节列举了一些改进查询处理速度的杂项tips:
-
如果您的应用程序执行多个数据库请求以进行相关更新,结合语句到存储例程中可以提高性能。类似地,如果您的应用程序根据多个列值或大量数据计算单个结果,将计算组合到可加载函数中也可以提高性能。这样产生的快速数据库操作随后可以被其他查询、应用程序和不同编程语言中的代码重用。请参阅第27.2节,“使用存储例程”和将函数添加到MySQL中以获取更多信息。
-
要解决
ARCHIVE
表中的压缩问题,请使用OPTIMIZE TABLE
。请参阅第18.5节,“ARCHIVE存储引擎”。 -
如果可能,请将报告分类为“live”或“statistical”
-
如果您有不适合行和列结构的数据,可以将数据打包并存储到
BLOB
列中。在这种情况下,您需要在应用程序中提供代码来打包和解包信息,但这可能会减少读取和写入相关值集的I/O操作。 -
使用 Web 服务器时,存储图像和其他二进制资产为文件,并将路径名称存储在数据库中,而不是文件本身。大多数 Web 服务器都更好地缓存文件,而不是数据库内容,因此使用文件通常速度更快。(尽管您需要自己处理备份和存储问题。)
-
如果您需要非常高的速度,可以查看 MySQL 的低级接口。例如,通过直接访问 MySQL 的
InnoDB
或MyISAM
存储引擎,您可以获得与使用 SQL 接口相比的显著速度提高。类似地,对于使用
NDBCLUSTER
存储引擎的数据库,您可能想调查 NDB API 的可能用途(见MySQL NDB 集群 API 开发指南)。 -
复制可以为某些操作提供性能优势。您可以将客户端检索分布在副本中以分配负载。为了避免在备份时 slows down 源,您可以使用副本进行备份。见
Chapter 19, Replication
.