In meiner Datenbank habe ich eine Tabelle, die eine CompanyId enthält, die auf eine Firma verweist, und etwas Text. Ich würde gerne eine FULLTEXT-Suche machen, aber da ich immer Anfragen an eine bestimmte Firmen-ID mache, würde ich gerne einen zusammengesetzten Schlüssel verwenden, der meine Firmen-ID und den Volltextindex kombiniert. Gibt es das überhaupt zu tun? Wie ich denke, das ist nicht möglich, was ist der optimale Weg, um Indizes zu erstellen, so dass die folgende Abfrage am schnellsten ist?Volltextindex kombiniert mit normalem Index
wird die Anforderung immer ein Volltext-Index sein
SELECT * FROM textTable
WHERE companyId = ? (Possibly more conditions) AND
MATCH(value) AGAINST("example")
Soll ich meine Indizes für Integer-Spalten normalerweise erstellen und hinzufügen? oder sollte ich die Spalte value
in den Index aufnehmen? Vielleicht beide ?
Warum erstellen Sie nicht beide, zeigen Sie den Ausführungsplan an, um zu sehen, welcher Index verwendet wird, und entscheiden Sie sich dann? – trincot
Haben Sie das schon überprüft? http://stackoverflow.com/questions/1173418/sql-server-normal-index-vs-fulltext-index auch dies (beachten Sie, dass ist jedoch über 3 Jahre alt): https://makandracards.com/makandra/12813 -performance-analyse-von-mysql-s-fulltext-indexes-und-like-queries-for-full-text-suche –
@trincot Ich könnte das für die Indizes tun, die ich im Sinn habe, aber ich werde nicht in der Lage sein Indizes zu erstellen, an die ich nicht gedacht habe. Und ich versuche, Einsichten zu bekommen, die ich selbst nicht finden kann. p.marino: Meine Frage ist nicht zu bestimmen, ob ich einen Volltextindex oder einen normalen Index verwenden soll, sondern wie man einen zusammengesetzten Schlüssel kombiniert (und wenn ich nicht kann, der nächste Ansatz) – hilnius