Использование как MyIsam & Innodb - PullRequest
       6

Использование как MyIsam & Innodb

1 голос
/ 21 сентября 2011

В последние несколько дней я был в растерянности, решая, использовать ли MyIsam или Innodb, так как у них есть свои плюсы и минусы. В моей таблице будет большой объем данных с тяжелыми операциями INSERT, UPDATE и SELECT.

Я решил создать две таблицы одинаковой структуры; tbl_mytbl_innodb(innodb engine) и tbl_mytbl_myisam(myisam engine) Затем я создал два триггера на tbl_mytbl_innodb для событий INSERT и UPDATE, которые будут вставлять / обновлять tbl_mytbl_myisam. Так что он всегда будет писать в tbl_mytbl_innodb и читать из tbl_mytbl_myisam.

Является ли этот процесс правильным или мне нужно сделать это лучше?

Ответы [ 2 ]

4 голосов
/ 21 сентября 2011

Это глупый путь. Единственное время, когда вы должны использовать оба параллельно, это если вам требуются транзакции + внешние ключи И полнотекстовые индексы. Вы будете использовать триггеры для синхронизации полнотекстовых полей в таблице MyISAM, а в остальном все будете хранить в InnoDB.

Существует несколько случаев использования MyISAM по сравнению с InnoDB, и основной из них является отсутствие полнотекстовой поддержки в InnoDB.

2 голосов
/ 21 сентября 2011

Я бы сказал, что это противоположно правильному процессу.Моя личная рекомендация - использовать InnoDB практически для всех бизнес-операций, поскольку он поддерживает транзакции ... единственное использование, которое я нашел для MyISAM, - полнотекстовый поиск (не знаю, почему это не доступно в InnoDB), но я свободно признаю, что это личное предпочтение.

Использование триггеров для синхронизации одних и тех же данных между несколькими таблицами не может быть полезным.Определите ваши бизнес-требования и выберите двигатель.Если вам нужно использовать другой движок для определенного требования, определите его и при необходимости заполните подмножество данных.

...