Mailinglisten-Archive |
Ilja Bekowies wrote: > Hallo, > > Hat jemand eine Idee, wie ich eine MySQL Volltextsuche optimiere in der > ich aber nicht nach der Relevanz, sondern nach einem anderen Spalte > sortieren will? > > Sprich ich habe ein Feld mit den Textdaten, und ein Feld mit einem > Timestamp. Ich will nun alle Matches ungeachtet der Relevanz, nach > Timestamp sortiert (Seitenweise) anzeigen. > > Da er ja fuer die Tabelle schon den Volltextindex benutzt, und ich den > anscheinend nicht durch die Spalte Timestamp erweitern kann - benutzt > mysql einen Filesort und ist somit recht lahm. > > Zum anderen brauche ich auch die Anzahl der gefunden Ergebnisse ... > SQL_CALC_FOUND_ROWS ist aber ebenfalls in verbindung mit Volltextsuchen > sehr lahm... > > Achso, es geht um Tabellen mit mehreren Millionen Datensaetzen a ca 2 kb > Text. > Pro Query wuerde ich gerne unter 0.5 Sekunden kommen - ist das utopisch? eventuell wenn du die Tabelle aufteilst, einmal Kopfdaten, alle Felder mit fester Breite und einmal Text-Daten, alle felder mit Variabler Breite, also auch deinem zu durchsuchenden Feld ein JOIN anhand einer ID und ORDER BY tab2.timestamp eventuell hilft ja soagr ein JOIN auf ein Alias der selben Tabelle ... musste mal probieren und dir das EXPLAIN anzeigen lassen -- Sebastian Mendel www.sebastianmendel.de www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive