2013-07-18 126 views
2

我試圖將全文索引添加到表中。當我運行查詢,添加全文檢索索引崩潰MySQL服務

ALTER TABLE thisTable ADD FULLTEXT(thisText); 

我得到

SQL錯誤(2013)消息:查詢

和mysql服務過程中丟失連接到MySQL服務器確實將停止。如果我重新啓動服務並嘗試再次添加索引,我會得到另一個錯誤。

SQL錯誤(1813):表'thisTable /#sql-ib21134'的表空間存在。請在IMPORT之前丟棄表空間。

引擎是InnoDb,我運行MySQL 5.6.12,所以應該支持全文索引。該列是一個TEXT列。

如果有人能指出我錯誤來自哪裏的正確方向,我將不勝感激。

+0

在[錯誤日誌](http://dev.mysql.com/doc/refman/)中是否有任何感興趣的東西? 5.6/EN /錯誤log.html)?如果日誌未啓用,請啓用它並重現崩潰。 – RandomSeed

+0

我與MySQL 5.7有同樣的問題,所以他們沒有修復它顯然。我在日誌中看到這個錯誤: 2016-07-15 12:22:36 0x7f65a97fa700 InnoDB:線程140074612139776中斷言失敗row0merge.cc行1009 InnoDB:失敗斷言:b ==&block [0] + buf - > total_size –

回答

-4

運氣不好朋友...

InnoDB表不支持FULLTEXT索引。

源 - http://dev.mysql.com/doc/refman/5.5/en/innodb-restrictions.html

+2

這實際上並不是真的:_在MySQL 5.6及更高版本中,它們也可以與InnoDB表一起使用。[Quelle](http://dev.mysql.com/doc/refman/5.5/en/fulltext- search.html) – Sakura

+1

http://dev.mysql.com/doc/refman/5.6/en/innodb-restrictions.html:「InnoDB表支持FULLTEXT索引,從MySQL 5.6.4開始」。請更新您的書籤。 – RandomSeed

+0

啊我的不好。回到你的問題,表中是否有數據?多少行? –

0

發生第二個錯誤,因爲該表(或全文index table)部分修改(或創建)當服務器崩潰。從頭開始刪除並重新創建表格。

現在,爲什麼服務器崩潰?很難說清楚,但有些緩衝區很可能達到了容量。通常的嫌疑人是innodb_buffer_pool_size。嘗試逐步增加它。

+0

我試圖將緩衝池增加到幾GB,但我仍然無法成功添加全文索引。 – Sakura

1

該問題與排序緩衝區大小有關。它是已知的mysql/mariadb/percona的bug。 即使在多個月後,我已經報告這個錯誤,它不是固定的(我們正在使用最新的Mariadb)