MySQL
MySQL
START TRANSACTION READ ONLY;
SELECT ...;
COMMIT;PostgreSQL
PostgreSQL
BEGIN READ ONLY;
-- 或 SET TRANSACTION READ ONLY;
SELECT ...;
COMMIT;| 收益 | 明确不写数据;优化器与系统可以降低锁开销 |
|---|---|
| 限制 | 事务内写普通表直接报错(防误操作) |
| 例外 | PostgreSQL 只读事务里仍可写临时表 |
声明只读事务:给数据库优化空间、避免误写,适合报表、备份、批量导出连接。
START TRANSACTION READ ONLY;
SELECT ...;
COMMIT;BEGIN READ ONLY;
-- 或 SET TRANSACTION READ ONLY;
SELECT ...;
COMMIT;| 收益 | 明确不写数据;优化器与系统可以降低锁开销 |
|---|---|
| 限制 | 事务内写普通表直接报错(防误操作) |
| 例外 | PostgreSQL 只读事务里仍可写临时表 |