Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jaki typ danych dla 8 bitowych znakow?
flashdev
post
Post #1





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


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.

Ten post edytował flashdev 12.01.2010, 23:33:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
jarmiar
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

Ostrzeżenie: (0%)
-----


po co optymalizować? dokup sobie kość pamięci i po kłopocie
Go to the top of the page
+Quote Post
Zyx
post
Post #3





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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.

Ten post edytował Zyx 12.01.2010, 23:51:49
Go to the top of the page
+Quote Post
flashdev
post
Post #4





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


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 (IMG:style_emoticons/default/smile.gif)


Oczywiście, że chodzi o bajty. Nie łap mnie za słowa (IMG:style_emoticons/default/winksmiley.jpg)

Chyba chodziło o typ danych VARBINARY - ustawiłem go i obcięło przykładowy wpis, czyli jest ok.

Ten post edytował flashdev 12.01.2010, 23:58:50
Go to the top of the page
+Quote Post
Mchl
post
Post #5





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


Po prostu ustaw kodowanie ASCII. VARBINARY nie służy do przechowywania tekstu, tylko do danych binarnych.
Go to the top of the page
+Quote Post
flashdev
post
Post #6





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
Mchl
post
Post #7





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


Kodowanie wybierasz nie wprost ustawiając algorytm porównywania na ascii_bin/ascii_general_ci
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 17:44