CHAR jest przechowywany jako ciąg o stałej długości, VARCHAR jest przechowywany jako ciąg o zmiennej długości. Mogę użyć VARCHAR do przechowywania łańcucha o stałej długości, ale dlaczego ludzie nadal chcą używać CHAR do przechowywania łańcucha o stałej długości? Czy jest jakaś korzyść z używania CHAR zamiast VARCHAR? Jeśli żadna z korzyści, dlaczego baza danych mySQL nie usuwa opcji CHAR?Jakieś korzyści z używania CHAR nad VARCHAR?
Odpowiedz
- VARCHAR
varchar przechowuje zmiennej długości ciąg znaków. może wymagać mniej pamięci niż typów o stałej długości, ponieważ wykorzystuje tylko tyle miejsca, ile potrzebuje.
varchar używa również 1 lub 2 dodatkowych bajtów do zapisania długości wartości. na przykład varchar (10) użyje do 11 bajtów przestrzeni dyskowej. varchar pomaga wydajności, ponieważ oszczędza miejsce. jednak ponieważ wiersze mają zmienną długość, mogą się rozwijać, gdy je zaktualizujesz, co może spowodować dodatkową pracę. jeżeli rząd rośnie i już nie pasuje w jego oryginalnej lokalizacji, zachowanie jest zależna od silnika do przechowywania ...
- CHAR
char jest stałej długości, mysql zawsze przydziela wystarczająco dużo miejsca dla określonego liczba znaków. Podczas przechowywania wartości CHAR, MySQL usuwa wszelkie spacje końcowe. Wartości są uzupełniane spacjami w razie potrzeby do porównań.
char jest przydatny, jeśli chcesz przechowywać bardzo krótkie ciągi lub, jeśli wszystkie wartości są prawie takie same, jak . Na przykład CHAR jest dobrym wyborem dla wartości MD5 dla haseł użytkowników, , które są zawsze tej samej długości.
char jest również lepszy niż VARCHAR dla danych, które często się zmieniają, ponieważ wiersz o stałej długości nie jest podatny na fragmentację.
Teraz widzę zalety CHAR o częstej aktualizacji wartości. Dziękuję Ci bardzo. – zac1987
Sidenote: Nie powiedziałbym, że char jest dobrym wyborem dla skrótów MD5, lub jakiegokolwiek skrótu. Powinny być przechowywane w formacie binarnym zamiast innego kodowania, takiego jak szesnastkowy. – Luc
wierzę, że jest szybszy w wyszukiwaniu, ponieważ baza danych wie dokładnie, gdzie iść od razu, zamiast wykonywać obliczenia długości, ale obecnie może nie być zbyt zauważalna –
- 1. Jakieś korzyści z używania Liquibase do migracji baz danych?
- 2. Korzyści z używania attr() nad addClass w jquery
- 3. Korzyści z używania konstruktora?
- 4. Korzyści z MVC nad MVP
- 5. Czy są jakieś wady używania VARCHAR (MAX) w tabeli?
- 6. Korzyści z używania podmodulatorów Bower over Git
- 7. Czy jest jakiś sens używania CHAR, jeśli masz VARCHAR w tej samej tabeli?
- 8. Razor/CSHTML - Jakieś korzyści z tego, co mamy?
- 9. Korzyści z używania Object.hasOwnProperty vs testowania, jeśli właściwość jest niezdefiniowana.
- 10. Korzyści z używania klas abstrakcyjnych w stosunku do zwykłej klasy
- 11. MySQL - TEKST vs CHAR i VARCHAR
- 12. wydajność między varchar (1) vs char (1)
- 13. Jakieś korzyści z najeżdżania kursorem myszy w JQuery?
- 14. Korzyści z używania obiektu WaitForSingleObject podczas sprawdzania identyfikatora procesu
- 15. Korzyści z używania zarządzania transakcjami sprężystymi a używaniem hibernacji
- 16. Jakieś ukryte pułapki zmieniające kolumnę z varchar (8000) na varchar (max)?
- 17. @NamedQuery nad @NamedNativeQuery
- 18. Czy są jakieś korzyści związane z wydajnością, używając parametru ReadOnly w trybie hibernacji?
- 19. Czy są jakieś korzyści w kartach nVidia Tesli?
- 20. Korzyści z x87 przez SSE
- 21. Korzyści z asertywnego programowania
- 22. Korzyści z generycznych konstruktorów
- 23. Czy są jakieś zalety używania FusedLocationProviderApi przez Menedżer położenia?
- 24. Korzyści z Plugin FailSafe Maven
- 25. Korzyści z używania generics w klasie bazowej, która implementuje tę samą klasę
- 26. Jakieś pułapki używające char * zamiast void * podczas pisania kodu cross-platform?
- 27. Jakieś doświadczenia z buforami protokołów?
- 28. nieprawidłowy konwersji z „const char *” do „char *” [-fpermissive]
- 29. Varchar (255) do Varchar (MAX)
- 30. Czy są jakieś efekty uboczne używania wielu plików string.xml?
http://stackoverflow.com/questions/59667/why-would-would-pick-char-over-varchar-in-sql –
http://stackoverflow.com/questions/350195/char-vs -varchar-for-performance-in-stock-database –
ops, przepraszam za powielone pytanie. Mam odpowiedź. Dzięki za link. – zac1987