Last active
September 2, 2020 06:00
-
-
Save ralexandr/18e4648fffd5520f9e5fcde4fd6a900e to your computer and use it in GitHub Desktop.
Revisions
-
ralexandr revised this gist
Sep 2, 2020 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1 +1,3 @@ ALTER TABLE `my_awesome_database`.`user_transaction` ADD FOREIGN KEY (`userId`) REFERENCES `my_awesome_database`.`user` (`id`), ALGORITHM=INPLACE, LOCK=NONE; -
ralexandr revised this gist
Sep 2, 2020 . 1 changed file with 0 additions and 8 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,9 +1 @@ ALTER TABLE `my_awesome_database`.`user_transaction` ADD FOREIGN KEY (`userId`) REFERENCES `my_awesome_database`.`user` (`id`), ALGORITHM=INPLACE, LOCK=NONE; -
ralexandr created this gist
Sep 2, 2020 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,9 @@ Problem: ...ALTER TABLE blocks reads (not just writes) at the point where it is ready to clear outdated table structures from the table and table definition caches. At this point, it must acquire an exclusive lock. To do so, it waits for current readers to finish, and blocks new reads and writes. In order to avoid blocking as much as possible, innoDB tables could be altered with 'inplace' algorithm and lock=none flag For example: ALTER TABLE `my_awesome_database`.`user_transaction` ADD FOREIGN KEY (`userId`) REFERENCES `my_awesome_database`.`user` (`id`), ALGORITHM=INPLACE, LOCK=NONE;