線上加索引出現MySQL與InnoDB索引數量不相同報錯
環境:MySQL 5.5.24 on Linux
描述:凌晨未停機實施新增索引的變更,add key的sql正常執行完成,但變更後收到下面的告警,在err log有以下記錄:
13093007:26:38 [ERROR] Table db.tbl contains 2 indexes inside InnoDB, which is different from
the number of indexes 1 defined in the MySQL .
the number of indexes 1 defined in the MySQL .
登入mysql,show create table db.tbl顯示確實是2個索引,說明現在frm中記錄也是正常的。
根據博主的描述,出現這種問題,應該是MySQL新特性“Fast index creation in Innodb”所導致的問題。在MySQL上層及InnoDB底層增加索引的操作是非同步的,在Innodb已經完成變更,MySQL上層frm還沒有更新,如果有新的連線來開啟表,都可能出現MySQL與InnoDB表物件資訊不一致的情況。
這個錯誤可以正常忽略。
如果後續訪問該表還存在類似的報錯,可以使用aler table engine=innodb進行修復。
延伸:儘量選擇在業務停機時再進行DDL操作!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29154652/viewspace-773646/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql為什麼加索引就能快MySql索引
- MySQL InnoDB 索引MySql索引
- Mysql效能優化:如何給字串加索引?MySql優化字串索引
- 用shell指令碼來給mysql加索引指令碼MySql索引
- mysql innodb索引高度MySql索引
- MySQL索引那些事:什麼是索引?為什麼加索引就查得快了?MySql索引
- InnoDB索引實現索引
- 探索MySQL的InnoDB索引失效MySql索引
- MySQL效能優化 - 別再只會說加索引了MySql優化索引
- MySQL InnoDB的索引擴充套件MySql索引套件
- 搞懂MySQL InnoDB B+樹索引MySql索引
- MySQL InnoDB搜尋索引的StopwordsMySql索引
- MySQL的InnoDB索引原理詳解MySql索引
- InnoDB索引與底層原理索引
- innodb_undo_tablespaces導致Mysql啟動報錯MySql
- MySQL5.7 InnoDB線上DDL操作MySql
- MySQL啟動報錯InnoDB: The innodb_system data file './ibdata1' is of a differentMySql
- 【Mysql】InnoDB 中的聚簇索引、二級索引、聯合索引MySql索引
- 字串可以這樣加索引,你知嗎?《死磕MySQL系列 七》字串索引MySql
- 【Mysql】InnoDB 中的 B+ 樹索引MySql索引
- Mysql innodb引擎(一)緩衝和索引MySql索引
- 怎麼給字串欄位加索引?字串索引
- MySQL 5.7使用pt-online-schema-change對大表加索引MySql索引
- MySQL 修改InnoDB重做日誌檔案的數量或大小MySql
- 線上MYSQL同步報錯故障處理總結MySql
- www.xttblog.com MySQL InnoDB 索引原理MySql索引
- mysql innodb新建索引堵塞update ,insert,deleteMySql索引delete
- MySQL 選錯索引MySql索引
- 線上MYSQL同步報錯故障處理方法總結MySql
- MySQL中InnoDB引擎對索引的擴充套件MySql索引套件
- MySQL innodb如何選擇一個聚簇索引MySql索引
- Mysql innodb引擎和myisam引擎使用索引區別MySql索引
- mysql innodb 索引失效問題引起表級鎖MySql索引
- 表外來鍵未加索引之處理索引
- MySQL bit型別增加索引後查詢結果不正確案例淺析MySql型別索引
- MySQL Innodb Cluster搭建與初探MySql
- ORACLE 索引和MYSQL INNODB 輔助索引對NULL的處理區別Oracle索引MySqlNull
- MySQL中Innodb如何計算索引的統計資訊?MySql索引