HIGH_PRIORITY is a MySQL-specific modifier that can be prefixed to SELECT or INSERT. It instructs the MySQL thread scheduler to execute that statement ahead of other waiting statements of normal priority that would otherwise block it due to table-level locks. For SELECT HIGH_PRIORITY: The query bypasses the default read-after-write queue and is executed before pending INSERT, UPDATE, or DELETE statements that require a write lock on the same table. It is only meaningful for storage engines that rely on table-level locking (MyISAM, MEMORY, MERGE). With row-level engines such as InnoDB, the modifier is accepted syntactically but has no effect because those engines do not wait for a global read lock.For INSERT HIGH_PRIORITY: The insert gains precedence over waiting SELECT statements that would normally be favored so readers are not starved. This modifier applies only to MyISAM and MEMORY tables. In other engines its presence is ignored.Because HIGH_PRIORITY can starve other sessions, use it sparingly and only when a short, time-critical query absolutely needs to complete first. The keyword does not override explicit locks issued by LOCK TABLES nor override transactions holding row locks in InnoDB. It is also not part of the SQL standard and is unsupported by most other databases.
LOW_PRIORITY, DELAYED, LOCK TABLES, INSERT DELAYED, NOWAIT
MySQL 3.22 (1998)
No. It only changes the order in which the server grants locks on table-level engines. It does not change execution plans or I/O speed.
No. InnoDB relies on row-level locking so the keyword is ignored.
No. A statement can have either HIGH_PRIORITY, LOW_PRIORITY, or neither, but not both.
Yes, but sparingly. Overuse can starve other sessions and increase contention because writes or reads of lower priority may have to wait indefinitely.