2009-11-15 9 views
9

Myślałem o przechowywaniu wartości adresów URL w mojej bazie danych, ale wiem, że niektóre adresy URL stają się absurdalnie długie. Myślę, że moja baza danych MySQL to wersja 5.0.Jaki jest najlepszy sposób na przechowywanie wartości adresu URL za pomocą MySQL?

Myślałem o użyciu.

VARCHAR(255) 

ale to będzie działać tylko przez tak długi czas. Więc powinienem użyć.

TEXT 
+0

W zależności od potrzeb używasz skrótu URL (IE: TinyURL) i przechowujesz skróconą wersję. –

+7

Kucyki @OMG: To tworzy kolejną zewnętrzną zależność. –

+2

255 jest o wiele za krótki, jak wskazali inni ludzie. Będziesz potrzebował co najmniej 2K, jeśli przejdziesz przez specyfikację. Pytanie brzmi: co chcesz z tym zrobić? Po prostu przechowuj tak jak jest lub traktuj jak tekst? To da ci typ (BLOB lub VARCHAR/TEXT) – dajobe

Odpowiedz

9

Maksymalna długość VARCHAR w MySQL 5.0 to 65536, więc nie jesteś ograniczony do 255.

+0

Tak, "TEKST" to rodzaj przesady –

+0

Myślałem, że był dostępny tylko w wersji 5.0.3 i nowszych – mii

+0

@mii: Rozumiem, używasz 5.0.0. Pech! –

5

Maximum URL lengths są różne dla różnych przeglądarek. Najlepiej jest zdecydować o długości, którą chcesz obsłużyć, a następnie ustawić rozmiar na VARCHAR, jeśli pasuje ona do maksymalnej długości VARCHAR. Jeśli potrzebujesz użyć TEKSTU, zapytaj dlaczego.

+4

Ponieważ IE obsługuje maksymalnie 2 083 znaki, możesz zdecydować się na VARCHAR (2083). :-) – AboutDev

+0

@AboutDev: Teraz, gdy wiemy, że jest to przed MySQL 5.0.3, tak się nie dzieje :( –

+0

Tak, możliwe rozwiązanie, jeśli naprawdę potrzebujesz obsługiwać tak wiele znaków, to zrobić oddzielną tabelę URL i zapisać elementy adresu URL jako odrębne kolumny ... takie jak serwer, yadda yadda. – AboutDev

0

Nie należy używać wersji 5.0.0 ani żadnej wersji .0. To nawet nie zostało wydane jako GA.

Odpowiedź na pytanie zależy od tego, czy i ile chcesz zindeksować. Prawdopodobnie będziesz chciał go zaindeksować, ale możesz użyć indeksu prefiksu, który pozwoli zaoszczędzić mnóstwo miejsca w indeksie i będzie prawie tak selektywny. Wadą jest to, że jeśli chcesz posortować adresy URL w kolejności, indeks prefiksu nie zrobi tego, więc będzie potrzebował pliku.

Powiązane problemy