-
There are three phases to an index build.
-
In the first phase, the clustered index is scanned, and index entries are generated and added to the sort buffer. When the sort buffer becomes full, entries are sorted and written out to a temporary intermediate file. This process is also known as a “run”.
-
In the second phase, with one or more runs written to the temporary intermediate file, a merge sort is performed on all entries in the file.
-
In the third and final phase, the sorted entries are inserted into the B-tree.
-
When running an online DDL operation, the thread that runs the ALTER TABLE statement applies an “online log” of DML operations that were run concurrently on the same table from other connection threads. When the DML operations are applied, it is possible to encounter a duplicate key entry error (ERROR 1062 (23000): Duplicate entry), even if the duplicate entry is only temporary and would be reverted by a later entry in the “online log”.This is similar to the idea of a foreign key constraint check in InnoDB in which constraints must hold during a transaction.
-
Semisynchronous Replication
-
-
The slave acknowledges receipt of a transaction's events only after the events have been written to
its relay log and flushed to disk.
-
半同步只负责relaylog的落盘, 并不关心Slave是否真的有应用这些events, 所以Master的双1+半同步正常可以确认binlog到了Slave端, Slave在不出问题的情况下能做到最终一致性;
-
innodb_lock_wait_timeout applies to InnoDB row locks only. A MySQL table lock does not happen inside InnoDB and this timeout does not apply to waits for table locks.
-
The lock wait timeout value does not apply to deadlocks when innodb_deadlock_detect
is enabled (the default) because InnoDB detects deadlocks immediately and rolls back one of
the deadlocked transactions. When innodb_deadlock_detect is disabled, InnoDB relies
on innodb_lock_wait_timeout for transaction rollback when a deadlock occurs.
For example, metadata lock