View Full Version : [MySql] InnoDB e fulltext
Sto creando un database in MySql e visto che mi serviva l'integrità referenziale ho creato delle tabelle in InnoDB.
Ora devo aggiungere l'indicizzazione fulltext su alcuni campi delle tabelle ma mysql mi da errore.
Ho controllato e la documentazione dice che dalla versione 4.0.10 il fulltext va bene anche in innodb, io ho la 4.0.20 e non mi lascia... idee?
Originariamente inviato da ingpeo
ma mysql mi da errore.
ovvero?
ti dice espressamente che non è supportato?
Si.
Mi serve la ricerca sulle parole e, visto che dovrà passare più di 5000 righe, il fulltext risulta molto comodo.
Casomai c'è qualche funzione che mi permette la ricerca di parole in campo TEXT su una tabella innodb?
Sono alle prime armi con MySql e l'SQL in genere...
In generale poi user CampoText LIKE "%parola%"
Comunque indago un po' su questa cosa...
Grazie, ho sentito però che il carico di lavoro diventa enorme usando il LIKE...
Non devo tenere in piedi un sito con centinaia di richieste ma lo stesso mi piacerebbe usare una funzione efficiente.
Altra domanda: usando il LIKE posso cercare anche una parola all'interno di una stringa TEXT?
Vabbè, vado a vedere la documentazione....:p
Sì, puoi usare LIKE nei campi TEXT...
Ho fatto una ricerca sulla documentazione e dice che gli indici FULLTEXT sono supportati solo su tabelle MyISAM.
sei sicuro delle tue fonti?
io leggo:
As of MySQL 3.23.23, MySQL has support for full-text indexing and searching. A full-text index in MySQL is an index of type FULLTEXT. FULLTEXT indexes are used with MyISAM tables only and can be created from CHAR, VARCHAR, or TEXT columns at CREATE TABLE time or added later with ALTER TABLE or CREATE INDEX.
Infatti: http://dev.mysql.com/doc/mysql/en/innodb-restrictions.html
Ho letto, mi aveva mandato in confusione questa altra parte:
You can have indexes on BLOB and TEXT columns only as of MySQL 3.23.2 for MyISAM tables or MySQL 4.0.14 for InnoDB tables. Older versions of MySQL did not support indexing these column types.
Voi cosa mi consigliate: tenere innodb con l'integrità referenziale (molto comoda) ed usare il LIKE o usare MyISAM e fulltext?
Le tabelle conterranno circa 5000 righe e le operazioni più frequenti saranno quelle di ricerca su campi contenente testo.
Dipende vviamente da cosa deve fare la tua applicazione... Per un sito web userei comunque MyISAM...
Originariamente inviato da ingpeo
Voi cosa mi consigliate
se l'integrità referenziale e' un requisito della base di dati della tua applicazione la risposta è scontata.
in caso contrario tieni conto che 5000 righe non sono molte per cui anche una ricerca con LIKE sul campo probabilmente e' accetabile specie se il contenuto del campo non è enorme.
Il campo conterrà al max 250 caratteri e l'integrità referenziale è sicuramente un requisito importante.
Mi sa che punterò su questa.
Domanda un po' ot:
Postgresql è difficile da usare?
Sono ancora in tempo di decidere cosa usare e magari questo è migliore per quello che devo fare io..
no non è difficile, anzi ha un'impostazione molto "classica" , ed e' molto piu' simile di mysql agli altri dbms.
La documentazione è molto valida.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.