Sql Server - Index für nvarchar-Feld
Was ist der gute Ansatz zu halten ein nvarchar-Feld einzigartig. Ich habe ein Feld, auf dem die Speicherung von urls in mp3-Dateien. Die url-Länge kann alles sein, von 10 Zeichen zu 4000. Ich habe versucht, einen index zu erstellen, und es sagt es kann nicht erstellen Sie den index als die Gesamtlänge 900 Byte überschreitet.
Wenn das Feld nicht indiziert ist, sein gehen, langsam zu sein, nichts zu suchen. Ich bin mit c#, asp.net mvc für das Frontend.
Hinsichtlich
Paraminder
Wahrscheinlich nicht leicht zu lösen in einer Datenbank, die seit Teile mit der URL kann die groß-und Kleinschreibung und andere Teile groß-und Kleinschreibung unterschieden.
InformationsquelleAutor Parminder | 2014-02-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie PRÜFSUMME Befehl und setzen Sie index auf die Spalte mit der Prüfsumme.
Dann können Sie abrufen von Daten schnell mithilfe der folgenden Abfrage:
Hier ist die Dokumentation: http://technet.microsoft.com/en-us/library/ms189788.aspx
InformationsquelleAutor Kaspars Ozols
Können Sie verwenden eine hash-Funktion (obwohl es theoretisch nicht gewährleistet, dass zwei verschiedene Titel haben unterschiedliche hashes, aber sollte gut genug sein: MD5 Kollisionen) und wenden Sie dann den index auf dieser Spalte.
MD5 in SQL Server
InformationsquelleAutor Joao Leal
Können Sie ein hash-code aus der url, und verwenden Sie diesen integer als einen eindeutigen index auf Ihrer db. Hüten Sie sich vor der Konvertierung werden alle Zeichen in Kleinbuchstaben zuerst, um sicherzustellen, dass alle url in das gleiche format. Gleichen url generieren gleichen hash-code.
Nicht wirklich.. Es hängt von der backing-server. RFC-Staaten ".., Wenn man zwei URIs zu entscheiden, ob Sie übereinstimmen oder nicht, ein client SOLLTE die Verwendung der groß-und Kleinschreibung Byte-by-Byte-Vergleich des gesamten URIs" aber ist nur eine Empfehlung, und IIS ist nicht case sensitive, Apache will. Siehe diesen thread: stackoverflow.com/questions/15641694/are-uris-case-insensitive
Dann sind Sie nicht portable zu Betriebssystemen mit case-sensitiven Dateisystemen oder die Unterstützung von remote-Speicher auf case-sensitive file-Servern. Es gibt Gründe, die RFCs empfehlen... was ist, wenn der MP3 gespeichert ist, auf einen Dienst wie imgur oder YouTube, wo der Schlüssel ist, die eine base64-hash, der groß-und Kleinschreibung?
Ich sage nicht, dass Sie nicht richtig sind, aber es nicht zu tun haben mit der eigentlichen Frage, wie lange dieser hash wird verwendet für eine private Durchführung und index, nicht ausgesetzt werden anderswo.
InformationsquelleAutor Oscar