Search code examples
mysqlinnodb

MySQL DELAYED vs LOW_PRIORITY - what is the difference?


Is there any difference between:

INSERT DELAYED INTO tableA SET val='1'

and

INSERT LOW_PRIORITY INTO tableA SET val='1'

both are supported by the official MySQL doc

and there is a dedicated section to INSERT DELAYED

This section says that DELAYED is planned for removal in future releases.

DELAYED inserts and replaces were deprecated in MySQL 5.6. In MySQL 5.7, DELAYED is not supported. The server recognizes but ignores the DELAYED keyword, handles the insert as a nondelayed insert, and generates an ER_WARN_LEGACY_SYNTAX_CONVERTED warning (“INSERT DELAYED is no longer supported. The statement was converted to INSERT”). The DELAYED keyword is scheduled for removal in a future release.

So apart from this I wonder if there is any difference?

Also, I have to say I use InnoDB in MySQL, not MyISAM. Is there actually any advantage with DELAYED INSERTs?

Thanks!


Solution

  • https://dev.mysql.com/doc/refman/5.7/en/insert.html says:

    LOW_PRIORITY affects only storage engines that use only table-level locking (such as MyISAM, MEMORY, and MERGE).

    Since you're using InnoDB, LOW_PRIORITY has no effect. It wouldn't have any benefit anyway, because in InnoDB, writers do not block readers, and vice-versa.