Różnica między varchar i tekstem w MySQL

Różnica między varchar i tekstem w MySQL
MySQL ma wiele typów danych do przechowywania danych ciągów w tabeli. Varchar i tekst to dwa z nich. Oba mogą przechowywać maksymalnie 65535 znaków, ale istnieją pewne różnice między tymi typami danych opisanych w tym samouczku.

Varchar vs. TEKST:

Istnieje wiele rodzajów różnic między typami danych varchar i tekstu. Różnice między tymi typami danych opisano poniżej.

Funkcje varchar i tekstu

Typy danych varchar i tekstu przechowują dane inaczej w tabeli bazy danych. Różne cechy tych typów danych opisano poniżej.

Varchar TEKST
Służy głównie do przechowywania mniejszych danych łańcuchowych. Służy głównie do przechowywania większych danych.
Służy do przechowywania zmiennej długości danych stringowych. Służy do przechowywania o stałej długości danych ciągów.
Maksymalną długość łańcucha można zdefiniować. Długości łańcucha nie można zdefiniować.
Indeksu nie można zastosować w tym typu danych. Indeks można zastosować w tym typu danych.
Zajmuje długość + 1 bajt miejsca, jeśli wartość długości jest mniejsza lub równa 255 znakom, i wymaga długości + 2 bajtów miejsca, jeśli długość jest większa lub równa 256 znakom. Wymaga długości +2 bajtów miejsca na dysku.
Działa wolniej. Działa szybciej.

Deklaracja Varchar i tekstu

Sposoby deklarowania typów danych varchar i tekstu zostały wyjaśnione poniżej, tworząc dwie tabele z polem typów danych varchar i tekstu. W poprzedniej części tego samouczka wspomniano, że długość jest wymagana do zdefiniowania typu danych varchar, a długość nie jest wymagana do zdefiniowania typu danych tekstowych.

Uruchom następującą instrukcję Utwórz bazę danych, aby utworzyć nazwaną bazę danych test_db.

Utwórz bazę danych test_db;

Uruchom następującą instrukcję zapytania, aby wybrać test_db baza danych przed utworzeniem tabeli.

Użyj test_db;

Uruchom następującą instrukcję Utwórz tabelę, aby utworzyć tabelę klienta zawierającą pięć pól. Tutaj typ danych ID pole jest liczbą całkowitą i typem danych Nazwa, e -mail, adres, I contact_no Pola to varchar, które zawierają wartość długości.

Klientowalni klienci (
Id intnot zerowy klucz podstawowy,
Nazwa varchar (30) nie null,
e -mail varchar (50),
Adres Varchar (300),
contact_no varchar (15));

Uruchom następujące instrukcje opisane, aby sprawdzić strukturę klienci tabela.

Opisz klientów;


Następujące dane wyjściowe pojawią się po wykonaniu powyższej instrukcji.

Uruchom następujące zapytanie, aby wstawić trzy rekordy do klienci tabela.

Wstaw do „Klienci” („id”, „nazwa”, „e -mail”, „adres”, „contact_no”) wartości („01”, „nibir hasan”, „[email protected] ', '32, sędzia SM Morshed Sharany \ r \ Nagargoan Sher-e-Bangla Nagar \ r \ ndhaka-1207, Bangladesh', „0191275634”),
(„02”, „Akash Chowdhury”, „[email protected] ', „House # 25b, Road # 1, Dhanmondi R/A, Dhaka-1205, Bangladesz”, „01855342357”),
(„03”, „Babor Ali”, „[email protected] ', „North Bhasantek (północna strona CMH), str.S. # Kafrul, Dhaka Cantonment, 1206, Bangladesz ', Null);

Uruchom następującą instrukcję Wybierz, aby przeczytać wszystkie rekordy tabeli klientów.

Wybierz * od klientów;

Następujące dane wyjściowe pojawią się po wykonaniu powyższej instrukcji.

Uruchom następującą instrukcję Utwórz tabelę, aby utworzyć tabelę pracowników zawierających pięć pól. Rodzaj danych dowód osobisty pole to liczba całkowita. Rodzaj danych Nazwa, e -mail, I contact_no Pola to Varchar. Rodzaj danych adres pole to tekst. Tutaj nie jest zadeklarowana wartość długości dla adres pole z powodu tekst typ danych.

Pracownicy kreatywni (
Id intnot zerowy klucz podstawowy,
Nazwa varchar (30) nie null,
e -mail varchar (50),
tekst adresu,
contact_no varchar (15));

Uruchom następujące instrukcje opisane, aby sprawdzić strukturę pracownicy tabela.

Opisz pracowników;

Następujące dane wyjściowe pojawią się po wykonaniu powyższej instrukcji.

Uruchom następujące zapytanie Wstaw, aby wstawić trzy rekordy z tą samą zawartością klienci stół do pracownicy tabela.

Wstaw do „pracowników” („id”, „nazwa”, „e -mail”, „adres”, „contact_no”) wartości („01”, „nibir hasan”, „[email protected] ', '32, sędzia SM Morshed Sharany \ r \ Nagargoan Sher-e-Bangla Nagar \ r \ ndhaka-1207, Bangladesh', „0191275634”),
(„02”, „Akash Chowdhury”, „[email protected] ', „House # 25b, Road # 1, Dhanmondi R/A, Dhaka-1205, Bangladesz”, „01855342357”),
(„03”, „Babor Ali”, „[email protected] ', „North Bhasantek (północna strona CMH), str.S. # Kafrul, Dhaka Cantonment, 1206, Bangladesz ', Null);

Uruchom następującą instrukcję Wybierz, aby przeczytać wszystkie rekordy pracownicy tabela.

Wybierz * od pracowników;

Następujące dane wyjściowe pojawią się po wykonaniu powyższej instrukcji.

Wydajność varchar i tekstu

Wcześniej wspomniano, że typ danych tekstowych działa szybciej niż typ danych varchar. Musisz wybrać bazę danych zawierającą tabele z polem typu Varchar i tekstu i włączyć profilowanie bieżą.

Baza danych została tutaj wybrana w momencie tworzenia tabeli. Więc nie musimy go ponownie wybierać. Uruchom następującą instrukcję zestawu, aby umożliwić profilowanie sesji.

Ustaw profilowanie sesji = 1;

Uruchom następujące zapytanie Wybierz, aby przeczytać wszystkie rekordy klienci tabela.

Wybierz * od klientów;

Uruchom następujące zapytanie Wybierz, aby przeczytać wszystkie rekordy pracownicy tabela.

Wybierz * od pracowników;

Uruchom następujące polecenie, aby sprawdzić wydajność wykonanych powyżej dwóch wybranych zapytań.

Pokaż profile;

Następujące dane wyjściowe pojawią się po wykonaniu polecenia show Profiles. Zgodnie z wyjściem, wybierz zapytanie dla klienci Tabela zawiera pole adresu Wymaganego typu danych Varchar 0.00101000 sekund i zapytanie do tabeli pracowników zawierających adres Wymagany pole danych tekstu 0.00078125 sekundy. Dowodzi, że typ danych tekstowych działa szybciej niż typ danych varchar dla tych samych danych.

Możesz porównać dane wyjściowe następujących dwóch zapytań, aby szczegółowo sprawdzić wydajność danych varchar i tekstu.

Wybierz * z Information_Schema.Profilowanie gdzie query_id = 1;
Wybierz * z Information_Schema.Profilowanie gdzie query_id = 2;

Wniosek:

Zarówno typy danych Varchar, jak i tekstu są ważne dla tworzenia tabel w bazie danych MySQL. Różnice między tymi typami danych zostały odpowiednio wyjaśnione w tym samouczku z przykładami, które pomogą użytkownikom MySQL wybrać prawidłowy typ danych pola tabeli w momencie tworzenia tabeli.