Mysql
 sql >> база данни >  >> RDS >> Mysql

Последици от дисковото пространство при задаване на стойност на колоната на MySQL на NULL вместо на 0 или ''

Не, използването на NULL няма да заема по-малко място от празен VARCHAR или INT поле. Всъщност може да отнеме повече пространство. Ето защо:

A VARCHAR се съхранява като размер + стойност. Броят на байтовете, използвани за размера, зависи от максималното съхранение на VARCHAR . VARCHAR(255) изисква един байт, VARCHAR(65536) изисква два байта и т.н.

Така че VARCHAR(255) колоната заема един байт, дори ако съхранявате празен низ. Следващата таблица ще отнеме минимум един байт на ред (плюс някои други възможни допълнителни разходи в зависимост от механизма за съхранение).

CREATE TABLE sample (
  a VARCHAR(255) NOT NULL
);

За да запазите NULL стойности, MySQL използва битова маска за всеки ред. На байт могат да се съхраняват до 8 колони с нулеви стойности. Така че, ако имате таблица като тази:

CREATE TABLE sample (
  a VARCHAR(255) NULL
);

Ще отнеме минимум два байта на ред. Съхранение на NULL просто задава бит, той вече е запазен, независимо дали го използвате или не. Байтът за VARCHAR Размерът на 's все още се използва за всеки ред, дори ако колоната е зададена на NULL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP OOP MySQL програмиране

  2. Външен кошер метахранилище за EMR

  3. Комбиниране на две таблици с sql JOIN?

  4. Изключете предупреждението за опасни изявления на mysql

  5. Написване на PHP файл за четене от CSV и изпълнение на SQL заявка