2010-09-03 24 views
1

我有一張表,名爲tb這是innodb - 有超過1米行。創建表「別名」,並更改表格類型

我想在桌面上進行全文搜索,但是我不能那樣做,因爲它的innodb。

那麼,如何創建一個TB稱爲TB2的「別名」,意思(該表的副本,自動更新時的TB更新數據,但改變的表型tb2 to myisam)

所以,這樣我可以在TB2做全文搜索,找到IDS和TB1

+0

感謝您的分享。請修改您的帖子以包含您的關於此的問題。 – 2010-09-03 22:31:00

回答

0
  • 選擇的ID創建一個表具有相同的結構,但MyISAM引擎
  • 使用觸發INSERT,UPDATE和DELETE以維持兩個表之間的一致狀態

但是要小心,因爲它會使寫入操作變慢。

+0

這是解決其特定問題的方法,但一般問題是該表的數據太多。分片或其他數據庫應該專門用於文本搜索 – Quamis 2010-09-03 23:56:37

4

我個人認爲這不是一個好主意,因爲它會減慢寫入和數據量,你的全文搜索將會很慢。我真誠地建議你看看像獅身人面像專用的全文搜索引擎

http://sphinxsearch.com/

0

首先,你會使用以下語法創建一個表:

create table tb2 like tb; 

這與創建一個表與tb相同的索引結構。然後,更改表,使其的MyISAM:

alter table tb2 engine='myisam'; 

然後,複製了現有的信息:

insert into tb2 select * from tb; 

爲了保持信息,那麼你就需要創建結核病三個觸發器。 ... after insertafter updateafter delete。每個事件都會插入/更新/刪除tb2中的相應行。