Ist es möglich, eine indizierte Sicht in MySQL zu haben?
Fand ich eine Veröffentlichung auf den MySQL-Foren von 2005, aber nichts neueres als das. Auf dieser Grundlage ist es nicht möglich. Aber viel ändern können, in 3-4 Jahren.
Was ich Suche, ist ein Weg, um einen index über eine Ansicht haben, aber die Tabelle, die angezeigt wird, bleiben nicht indexierte. Indizieren tut weh, das schreiben und diese Tabelle geschrieben wird Recht Häufig (bis zu dem Punkt, wo die Indizierung verlangsamt alles um einen crawl). Doch das fehlen eines index macht meine Fragen quälend langsam.
Kommentar zu dem Problem - Öffnen
InformationsquelleAutor der Frage Thomas Owens | 2008-10-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass MySQL unterstützt materialisierte Ansichten, die, was Sie brauchen würde, aber es würde nicht helfen, Sie in dieser situation sowieso. Ob der index ist auf die Ansicht oder auf der zugrunde liegenden Tabelle, würde es geschrieben werden müssen und aktualisiert irgendwann bei einem update der zugrunde liegenden Tabelle, so wäre es immer noch bewirken, dass die Schreibgeschwindigkeit Probleme.
Ihre beste Wette wäre wahrscheinlich zu erstellen, zusammenfassende Tabellen, die bekommen regelmäßig aktualisiert.
InformationsquelleAutor der Antwort KernelM
Haben Sie als Abstraktion Ihrer Transaktion, die Verarbeitung von Daten für analytische Verarbeitung der Daten, so dass Sie beide können spezialisiert werden, um Ihren einzigartigen Anforderungen?
Die grundlegende Idee, dass Sie eine version der Daten, die regelmäßig verändert werden, wäre die Transaktion Verarbeitung der Seite und erfordert schwere Normalisierung und Licht-Indizes, so dass schreib-Operationen sind schnell. Eine zweite version der Daten ist strukturiert für die analytische Verarbeitung und tendenziell weniger normalisiert und stärker indiziert für eine schnelle Berichterstellung Operationen.
Daten, die strukturiert die analytische Verarbeitung wird in der Regel gebaut, um die cube-Methodik von data warehousing, die sich aus der Tatsache Tabellen vertreten, dass die Seiten des Cubes und Dimensions-Tabellen repräsentieren die Kanten des Würfels.
InformationsquelleAutor der Antwort Noah Goodrich
Flexviews unterstützt materialized views in MySQL durch die Verfolgung von änderungen an den zugrunde liegenden Tabellen und die Tabelle zu aktualisieren, die Funktionen wie eine materialisierte Ansicht. Dieser Ansatz bedeutet, dass SQL-unterstützt durch die Sicht ist etwas eingeschränkt (wie die änderung logging Routinen haben, um herauszufinden, welche Tabellen es sollte für die änderungen nachverfolgt werden), aber soweit ich weiß, das ist die nächstgelegene Sie bekommen können, materialized views in MySQL.
InformationsquelleAutor der Antwort mateusz.kijowski
Wollen Sie nur eine indizierte Sicht? Es ist unwahrscheinlich, dass das schreiben in eine Tabelle mit nur einem index wäre das störend. Gibt es keinen primary key?
Wenn jeder Datensatz groß ist, könnten Sie die Leistung verbessern, indem Sie herausfinden, wie um es abzukürzen. Oder verkürzen Sie die Länge des index, den Sie brauchen.
Ist dies eine nur-schreiben-Tabelle (d.h. Sie brauchen nicht zu tun-updates), es kann tödlich sein MySQL zu starten Sie die Archivierung, oder sonst löschen von Datensätzen (und index-Schlüssel), dass der index zu Beginn der Befüllung (Wiederverwendung) slots aus gelöschten Schlüssel, anstatt nur anfügen neue index-Werte. Eingängig, aber du bist besser dran mit eine größere Tabelle, in diesem Fall.
InformationsquelleAutor der Antwort dkretz