2010-11-22 5 views
1

Je suis en train de concevoir une application web en utilisant Mysql comme back end - et j'utilise des tables INNodb pour maintenir les relations de clés étrangères.Recherche plein texte sur la table MySql (Innodb vs ISAM)

Maintenant, j'ai cette vidéo de table qui a des balises de colonne qui contiendra des mots-clés sur lesquels j'ai besoin d'effectuer une recherche. Maintenant, puisque cette table est Innodb, je ne peux pas utiliser la fonctionnalité de recherche fulltext de Mysql. Maintenant, plutôt que de changer la table vidéo en MyIsam et de casser toutes les contraintes de clé étrangère - je pensais créer une autre table appelée video_tags de type MyIsam qui contiendra la colonne tags et le video_id (clé primaire de la table video) . Donc, dans ma base de données, toutes les tables seraient Innodb à l'exception de la table video_tags. Est-ce la bonne façon de gérer cela. Merci pour votre aide.

Répondre

1

Le seul problème que vous pouvez rencontrer est que les tables MyISAM ne prennent PAS en charge les transactions. Ainsi, si vous démarrez une transaction, écrivez des données dans des tables InnoDB et MyISAM, puis annulez le processus, les modifications apportées à INNODB seront annulées, mais les modifications apportées à MyISAM ne le seront pas.

Vous pouvez également utiliser quelque chose comme Sphinx pour les recherches.

+0

Merci pour le rappel de sphinx - je vais y regarder – Gublooo

0

Je pense que c'est correct de le faire comme ça. Je ne vois pas que vous ayez des problèmes dans le futur

+0

Merci pour votre avis – Gublooo