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

char срещу varchar за производителност в складова база данни

В MyISAM има известна полза от правенето на записи с фиксирана ширина. VARCHAR е променлива ширина. CHAR е с фиксирана ширина. Ако вашите редове имат само типове данни с фиксирана ширина, тогава целият ред е с фиксирана ширина и MySQL печели известно предимство при изчисляване на изискванията за пространство и отместването на редовете в тази таблица. Въпреки това предимството може да е малко и едва ли си струва възможна малка печалба, която се компенсира от други разходи (като ефективност на кеша) от наличието на подплатени CHAR колони с фиксирана ширина, където VARCHAR би съхранявал по-компактно.

Точката на прекъсване, при която то става по-ефективно, зависи от вашето приложение и това не е нещо, на което може да се отговори, освен като тествате и двете решения и използвате това, което работи най-добре за вашите данни при използване на вашето приложение.

По отношение на INT(7) срещу INT(11), това е без значение за съхранението или производителността. Често срещано погрешно разбиране е, че аргументът на MySQL за типа INT има нещо общо с размера на данните - няма. Типът данни INT на MySQL винаги е 32 бита. Аргументът в скобите се отнася до това колко цифри да бъдат въведени, ако показвате стойността с ZEROFILL. напр. INT(7) ще покаже 0001234, където INT(11) ще покаже 00000001234. Но това подпълване се случва само докато стойността се показва, а не по време на съхранение или математическо изчисление.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql фалшив избор

  2. Защо COUNT() показва само един ред от таблица?

  3. Оптимизирайте SELECT ... WHERE IN (...)

  4. Как да направите вътрешно присъединяване в django?

  5. Защо MySQL InnoDB вмъкванията/актуализациите на големи таблици стават много бавни, когато има няколко индекса?