Forskjell mellom varchar og tekst i mysql

Forskjell mellom varchar og tekst i mysql
MySQL har mange datatyper for lagring av strengdata i tabellen. Varchar og tekst er to av dem. Begge kan lagre maksimalt 65535 tegn, men det er noen forskjeller mellom disse datatypene beskrevet i denne opplæringen.

Varchar vs. TEKST:

Det er mange typer forskjeller mellom varchar og tekstdatatyper. Forskjellene mellom disse datatypene er beskrevet nedenfor.

Funksjoner av varchar og tekst

Varchar og tekstdatatyper lagrer data annerledes i databasetabellen. Ulike funksjoner av disse datatypene er beskrevet nedenfor.

VARCHAR TEKST
Det brukes hovedsakelig til å lagre mindre strengdata. Det brukes hovedsakelig til å lagre større strengdata.
Den brukes til å lagre variabel lengde av strengdata. Den brukes til å lagre fast lengde av strengdata.
Maksimal lengde på strengen kan defineres. Lengden på strengen kan ikke defineres.
Indeks kan ikke brukes i denne datatypen. Indeksen kan brukes i denne datatypen.
Det tar lengde + 1 byte med plass hvis lengdeverdien er mindre enn eller lik 255 tegn, og den tar lengde + 2 byte av plass hvis lengden er større enn eller lik 256 tegn. Det tar lengden på +2 byte av diskplass.
Det fungerer tregere. Det fungerer raskere.

Erklæring om varchar og tekst

Måtene å erklære varchar- og tekstdatatypene er forklart nedenfor ved å lage to tabeller med feltet Varchar og tekstdatatyper. Det er nevnt i forrige del av denne opplæringen at lengden er nødvendig for å definere varchar -datatypen, og lengden er ikke nødvendig for å definere tekstdatatypen.

Kjør følgende Opprett databaseoppgave for å opprette databasen som heter test_db.

Opprette databasetest_db;

Kjør følgende spørringsuttalelse for å velge test_db database før du oppretter tabellen.

Bruk test_db;

Kjør følgende Opprett tabelluttalelse for å opprette en kundetabell som inneholder fem felt. Her, datatypen av id felt er et heltall og datatypen av Navn, e -post, adresse, og kontaktnummer Felt er varchar som inneholder lengdeverdi.

Skaperbare kunder (
id intnot null primærnøkkel,
Navn varchar (30) ikke null,
E -post varchar (50),
adresse varchar (300),
Kontakt_no varchar (15));

Kjør følgende beskrivende uttalelse for å sjekke strukturen til Kunder bord.

Beskrive kunder;


Følgende utdata vises etter utførelse av uttalelsen ovenfor.

Kjør følgende sett inn spørring for å sette inn tre poster i Kunder bord.

Sett inn 'kunder' ('id', 'navn', 'e -post', 'adresse', 'contact_no') verdier ('01', 'nibir hasan', '[email protected] ', '32, Justice 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, Bangladesh ',' 01855342357 '),
('03', 'Babor Ali', '[email protected] ',' North Bhasantek (nordsiden av CMH), P.s. # Kafrul, Dhaka Cantonment, 1206, Bangladesh ', null);

Kjør følgende valgte setning for å lese alle poster over kundens tabell.

Velg * fra kunder;

Følgende utdata vises etter utførelse av uttalelsen ovenfor.

Kjør følgende Opprett tabelluttalelse for å lage en ansattes tabell som inneholder fem felt. Datatypen på IDen felt er et heltall. Datatypen på Navn, e -post, og kontaktnummer Felt er varchar. Datatypen på adresse Feltet er tekst. Her er ingen lengdeverdi erklært for adresse felt på grunn av tekst data-type.

Skapte ansatte (
id intnot null primærnøkkel,
Navn varchar (30) ikke null,
E -post varchar (50),
Adresse tekst,
Kontakt_no varchar (15));

Kjør følgende beskrivende uttalelse for å sjekke strukturen til ansatte bord.

Beskrive ansatte;

Følgende utdata vises etter utførelse av uttalelsen ovenfor.

Kjør følgende sett inn spørring for å sette inn tre poster med samme innhold i Kunder bord til ansatte bord.

Sett inn 'ansatte' ('id', 'navn', 'e -post', 'adresse', 'contact_no') verdier ('01', 'nibir hasan', '[email protected] ', '32, Justice 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, Bangladesh ',' 01855342357 '),
('03', 'Babor Ali', '[email protected] ',' North Bhasantek (nordsiden av CMH), P.s. # Kafrul, Dhaka Cantonment, 1206, Bangladesh ', null);

Kjør følgende valgte setning for å lese alle poster av ansatte bord.

Velg * fra ansatte;

Følgende utdata vises etter utførelse av uttalelsen ovenfor.

Ytelse av varchar og tekst

Det har blitt nevnt før at tekstdatatypen fungerer raskere enn varchar -datatypen. Du må velge databasen som inneholder tabellene med feltet Varchar og tekstdatatype og aktivere profilering av den nåværende MySQL -økten for å sjekke hvilken datatype som er raskere mellom varchar og tekst.

Databasen er valgt her på tidspunktet for opprettelse av tabellen. Så vi trenger ikke å velge det igjen. Kjør følgende angitt uttalelse for å aktivere øktprofilering.

Sett øktprofilering = 1;

Kjør følgende velg spørring for å lese alle poster av Kunder bord.

Velg * fra kunder;

Kjør følgende velg spørring for å lese alle poster av ansatte bord.

Velg * fra ansatte;

Kjør følgende kommando for å sjekke ytelsen til de utførte over to utvalgte spørsmål.

Vis profiler;

Følgende utdata vises etter å ha utført kommandoen Show Profiles. I henhold til utdataene, SELECT -spørringen for Kunder Tabellen inneholder adressefeltet til varchar datatype påkrevd 0.00101000 sekunder og velg spørringen for de ansatte tabellen som inneholder adresse Felt av tekstdatatype påkrevd 0.00078125 sekunder. Det beviser at tekstdatatypen fungerer raskere enn varchar -datatypen for de samme dataene.

Du kan sammenligne utdataene fra følgende to spørsmål for å sjekke ytelsen til Varchar og tekstdatatyper i detalj.

Velg * fra informasjon_schema.Profilering der spørring_id = 1;
Velg * fra informasjon_schema.Profilering der spørring_id = 2;

Konklusjon:

Både Varchar og tekstdatatyper er viktige for å lage tabeller i MySQL -databasen. Forskjellene mellom disse datatypene er blitt forklart på riktig.