php - MySQL 事务查询是否可以提高多个 SELECT 语句的性能?

标签 php mysql sql transactions

我想从多个数据库表中获取数据,并想在五个以上的表上使用选择查询,使用事务查询来帮助提高性能:

try {
    // First of all, let's begin a transaction
    $this->db->beginTransaction();

    // Multiple select queries 

    $this->db->commit();
    return $data;
} catch (Exception $e) {
    // An exception has been thrown
    // We must rollback the transaction
    $this->db->rollback();
}

最佳答案

交易对INSERT有很大的插入作用/UPDATE/DELETE查询(前提是您使用像 InnoDB 这样的事务引擎),但在 SELECT仅查询,使用事务不太可能提高性能(但您的应用程序逻辑可能仍然需要以确保一致性)。

速度差异的主要原因:如果您不使用事务,服务器必须尽快将每个更新刷新到磁盘,以确保在服务器崩溃或断电时数据仍然存在。对于事务,服务器只需要保证在一个事务中批处理的所有更新都提交到磁盘,或者整个事情都被回滚。换句话说,服务器可以自由地将许多写入分组为少数磁盘操作,并且仅在绝对确定数据安全时才需要提交事务。性能差异很容易达到一两个数量级。

关于php - MySQL 事务查询是否可以提高多个 SELECT 语句的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18395294/

相关文章:

php - 将 PHP 站点从 32 位 RedHat 迁移到 64 位

php - 尝试在本地上传 1M 文件时出现 fatal error

mysql - mysql date_format 之间不起作用

php - 反转 PHP 中元素的显示顺序

mysql - SQL SELECT 或 CROSS JOIN 多个帐户和按行列中的 SUM 值

java - 如何动态更改 sql 'like' 运算符?

php - 如何仅在未处理表单时运行某个 Javascript 片段?

用于数据分析的 Java Web 平台

java - 使用netbeans从jtable中的mysql检索数据

php - 使用 LIKE 函数查询日期的 MYSQL 查询