MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE
生活随笔
收集整理的這篇文章主要介紹了
MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
線上無鎖添加索引:加索引的語句不加鎖
ALTER TABLE tbl_name ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE; ALGORITHM=INPLACE 更優秀的解決方案,在當前表加索引,步驟: 1.創建索引(二級索引)數據字典 2.加共享表鎖,禁止DML,允許查詢 3.讀取聚簇索引,構造新的索引項,排序并插 入新索引 4.等待打開當前表的所有只讀事務提交 5.創建索引結束ALGORITHM=COPY 通過臨時表創建索引,需要多一倍存儲,還有更多的IO,步驟: 1.新建帶索引(主鍵索引)的臨時表 2.鎖原表,禁止DML,允許查詢 3.將原表數據拷貝到臨時表 4.禁止讀寫,進行rename,升級字典鎖 5.完成創建索引操作LOCK=DEFAULT:默認方式,MySQL自行判斷使用哪種LOCK模式,盡量不鎖表 LOCK=NONE:無鎖:允許Online DDL期間進行并發讀寫操作。如果Online DDL操 作不支持對表的繼續寫入,則DDL操作失敗,對表修改無效 LOCK=SHARED:共享鎖:Online DDL操作期間堵塞寫入,不影響讀取 LOCK=EXCLUSIVE:排它鎖:Online DDL操作期間不允許對鎖表進行任何操作總結
以上是生活随笔為你收集整理的MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL的show processli
- 下一篇: 信用卡欠款只有几十块钱 逾期之后十来天利