如果我想在表A中找到一组条目而不是在表B中,我可以使用LEFT OUTER JOIN或NOT EXISTS.我听说过SQL Server适用于ANSI,在某些情况下,LEFT OUTER JOIN比NOT EXISTS效率更高.在这种情况下,ANSI JOIN会表现得更好吗?并且在SQL Server上加入运算符比一般的NOT EXISTS更有效吗?
MySQL有一个RENAME TABLE状态,允许您更改表的名称.
手册提到
重命名操作以原子方式完成,这意味着在重命名运行时,没有其他会话可以访问任何表
手册没有(据我所知)说明如何完成重命名.是否创建了表的完整副本,给定了新名称,然后删除旧表?或者MySQL在幕后做了一些魔术来快速重命名表?
换句话说,表的大小是否会影响RENAME表语句运行的时间.还有其他可能导致块重命名的事情会严重阻塞吗?
问题 1:删除查询是否作为 mysql/mariadb 中的整个事务运行。因此,如果我们有 100 万行要删除,mysql/mqriadb 服务器是否会将其作为一个整体删除,或者如果在删除某些行后出现问题,已删除的行将被恢复。
Q2:我们是需要在单个删除查询中删除行(无论需要删除多少行)还是需要在删除查询中设置限制并批量执行删除。如果需要以多少(要删除的行数)进行批处理,我们应该考虑一下。
mysql ×2
mariadb ×1
migration ×1
performance ×1
php ×1
python ×1
ruby ×1
sql ×1
sql-delete ×1
sql-server ×1