mysql - Mysql/Mariadb 删除查询是事务性的吗?及其性能巨大。行数?

标签 mysql performance mariadb sql-delete transactional

Q1:删除查询是否作为 mysql/mariadb 中的整个事务运行。因此,如果我们有 100 万行要删除,mysql/mqriadb 服务器是否会将其作为一个整体删除,或者如果在删除某些行后出现问题,则删除的行将被恢复。

Q2:我们是否需要在单个删除查询中删除行(无论需要删除多少行),还是需要在删除查询中设置限制并批量执行删除。如果需要批量处理,我们应该考虑多少(要删除的行数)。

最佳答案

在 InnoDB 中,任何大小的 DELETE 都是事务性的。删除一百万会很慢,主要是因为需要为可能的ROLLBACK做好准备。

我将在 http://mysql.rjweb.org/doc.php/deletebig 中介绍其余问题,包括有关做什么的建议。

关于mysql - Mysql/Mariadb 删除查询是事务性的吗?及其性能巨大。行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49596374/

相关文章:

php - 需要检查用户在我的网站 Laravel 5.2 上注册了多长时间

performance - MongoDB 在聚合查询上的表现

performance - MongoDB 按 ID 慢查询

mysql - 将表分成 2 有什么逻辑吗?

php - 多个 WHERE 和 LIMIT MySQL

mysql - 如何在一个 INSERT 上获取多行的插入 ID?

mysql - 如何正确地将 mariadb 数据库从容器移动到主机

mysql - 如何强制删除 MariaDB 数据库?

mysql - Now() 上的 Convert_tz 返回错误

java - 打印在java中产生错误的输出