sql >> Databáze >  >> RDS >> Mysql

Jak MySQL interpretuje velikost pole VARCHAR?

A VARCHAR(255) může uložit až 255 znaků, bez ohledu na počet bajtů na znak požadovaný kódováním znakové sady.

Požadavek na úložiště je délka skutečně uložených dat (nikoli maximální), plus 1 nebo 2 bajty pro uložení délky dat -- 1 bajt se použije, pokud maximální možná délka v bajtech> 255... takže VARCHAR(255) COLLATE utf8mb4 používá 2 bajty k uložení délky, zatímco VARCHAR(255) COLLATE ascii_general_ci používá 1 bajt k uložení délky. Do žádného sloupce nelze uložit více než 255 znaků.

Deklarujte velikost sloupce jako vhodnou pro ukládaná data. Použití 255 je běžné, ale obvykle je to červená vlajka nedbalého designu, protože je vzácné, aby tato konkrétní hodnota smysluplně představovala maximální vhodnou délku sloupce.

Naproti tomu CHAR(255) COLLATE utf8mb4 vždy spotřebuje 255 × 4 (maximální možné) bajtů na sloupec na řádek a 0 bajtů k uložení délky, protože uložená délka se nemění. Tyto sloupce jsou zřídka vhodné, kromě případů, kdy má sloupec vždy známou délku a znaková sada je jednobajtová, jako je UUID, což by bylo CHAR(36) COLLATE ascii_general_ci .

https:/ /dev.mysql.com/doc/refman/5.7/en/storage-requirements.html#data-types-storage-reqs-strings



  1. Funkce MySQL RAND() – Generování náhodného čísla v MySQL

  2. Výkon MySQL:Úvod do JOINů v SQL

  3. Vkládání milionů záznamů z místního na Godaddy hosting

  4. Zámek a transakce v postgresu, které by měly zablokovat dotaz