Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jaki typ danych dla 8 bitowych znakow?
Forum PHP.pl > Forum > Bazy danych > MySQL
flashdev
Witam!
Stworzylem baze danych z polem typu VARCHAR o dlugosci 5, jednak udaje mi się wpisac do niego wartosci typu:
"aąbcć", a jak wiadomo taki ciąg jest reprezentowany przez 7 bitów.
Próbowałem machać opcją "Metoda porównywania napisów", ale ona chyba nie ma odzwierciedlenia w sposobie przechowywania tych danych.
Zadaję to pytaie ponieważ chciałbym jak najlepiej zoptymalizować bazę pod kątem szybkości, a z założenia nie będzie w tej bazie zapisanych polskich znaków.
jarmiar
po co optymalizować? dokup sobie kość pamięci i po kłopocie
Zyx
Oczywiście, że metoda porównywania napisów nie ma nic wspólnego ze sposobem przechowywania tych danych, za to KODOWANIE już tak. Bawisz się nie tą opcją, co trzeba.

Cytat
"aąbcć", a jak wiadomo taki ciąg jest reprezentowany przez 7 bitów.


7 bitów? Wow, co to za genialne kodowanie? Kompresja jakaś wbudowana i w ogóle smile.gif

jarmiar -> to nie ma nic wspólnego z zajętością pamięci, tylko z szybkością przetwarzania tekstu. Część operacji na tekście o zmiennej długości znaków ma większą złożoność obliczeniową. I niestety muszę Cię zmartwić, ale tu szybszy procesor niekoniecznie pomoże. Jest różnica, gdy jakąś informację możesz wyciągnąć w czasie stałym, a gdy musisz przeskanować do jej uzyskania cały tekst, który może liczyć np. 20 KB. W ogóle to życzę powodzenia z takim podejściem.
flashdev
Pomimo pojawienia się powyższego błyskotliwego rozwiązania w dalszym ciągu oczekuję na rozwiązanie mojego problemu.
Czyli jak zapisywać te ciągi bez polskich znaków (5 znaków = 5 bajtów).

Cytat(Zyx @ 12.01.2010, 23:51:21 ) *
7 bitów? Wow, co to za genialne kodowanie? Kompresja jakaś wbudowana i w ogóle smile.gif


Oczywiście, że chodzi o bajty. Nie łap mnie za słowa winksmiley.jpg

Chyba chodziło o typ danych VARBINARY - ustawiłem go i obcięło przykładowy wpis, czyli jest ok.
Mchl
Po prostu ustaw kodowanie ASCII. VARBINARY nie służy do przechowywania tekstu, tylko do danych binarnych.
flashdev
Cytat(Mchl @ 13.01.2010, 09:42:34 ) *
Po prostu ustaw kodowanie ASCII. VARBINARY nie służy do przechowywania tekstu, tylko do danych binarnych.


Tylko gdzie ustawić to kodowanie, bo w opcjach phpmyadmina nie ma takiej mozliwości.
Mchl
Kodowanie wybierasz nie wprost ustawiając algorytm porównywania na ascii_bin/ascii_general_ci
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.