2011-11-12 5 views
7

Mi rendo conto che MySQL 5.6 è ancora in versione beta, ma qualcuno ha esperienza con il nuovo motore InnoDB FTS? Come si confronta con qualcosa come Sfinge?MySQL 5.6 InnoDB Ricerca di testo completo

Grazie Jason

+1

dare un'occhiata in giro: http://blogs.innodb.com/wp/2011/07/difference-between-innodb-fts-and -myisam-fts/ http://blogs.innodb.com/wp/2011/07/innodb-fts-performance/ http://blogs.innodb.com/wp/2011/07/innodb-full-text -search-tutorial/ http://blogs.innodb.com/wp/2011/07/overview-and-getting-started-with-innodb-fts/ – Jauzsika

+0

Esiste una metrica specifica per le prestazioni o le prestazioni che stai cercando? Come già detto, la tua domanda non sarà probabilmente costruttiva e otterrà una risposta non soggettiva. – Kris

risposta

1

Ricordate che Sfinge di ricerca è stato sviluppato per la ricerca full text in MySQL è solo una caratteristica ...

qui si ha confrontare della Sfinge e mysql FTS: http://www.percona.com/files//presentations/opensql2008_sphinx.pdf

Ecco il test delle prestazioni di InnoDB FTS rispetto a MyISAM: http://blogs.innodb.com/wp/2011/07/innodb-fts-performance/

InnoDB è leggermente più veloce specialmente nell'indicizzazione, ma è ancora lontano dalle prestazioni della sfinge ...

+2

Tuttavia, è molto più semplice utilizzare un prodotto anziché due. Soprattutto, quando implementi tutto questo al cliente e vai via. Nei nostri grandi progetti usiamo sfinge, ovviamente. – Oroboros102

3

Non ho mai usato la Sfinge, ma ho provato MySQL 5.6 FTS su un tavolo Innodb con circa 170.000 file. Fatto un indice FTS sulla colonna del nome (contiene tutti i nomi di una persona). Trovare una parola in qualsiasi posizione della stringa MATCH(name) AGAINST("+word*") IN BOOLEAN MODE funziona molto più velocemente (2-3 volte nel mio caso) rispetto all'utilizzo di name LIKE "word%" OR name LIKE "% word". Tuttavia, quando si effettuano i join, controllare EXPLAIN per vedere se l'indice FTS è effettivamente utilizzato. Sembra che l'ottimizzatore MySQL non sia così bravo a indovinare quando si dovrebbe usare l'indice FTS.

2

La funzione FULLTEXT che in precedenza richiedeva il download di una build speciale da labs.mysql.com ora fa parte del build MySline mainline in 5.6.5 e versioni successive (ancora in versione beta). La documentazione per le funzioni FULLTEXT ora include le specifiche InnoDB dettagli: MySQL Full-Text Search Functions