Зависи коя машина за съхранение използвате.
Във формат MyISAM всеки заглавка на ред съдържа битово поле с един бит за всяка колона за кодиране на състояние NULL. Колона, която е NULL, все още заема място, така че NULL не намаляват паметта. Вижте https://dev.mysql.com/doc/internals/ en/myisam-introduction.html
В InnoDB всяка колона има "начало на полето отместване" в заглавката на реда, което е един или два байта на колона. Най-високият бит в началното изместване на това поле е включен, ако колоната е NULL. В този случай колоната изобщо не трябва да се съхранява. Така че, ако имате много NULL, вашето хранилище трябва да бъде значително намалено. Вижте https://dev.mysql.com/doc/internals/en/innodb-field-contents.html
РЕДАКТИРАНЕ:
NULL битовете са част от заглавките на редовете, вие не избирате да ги добавите.
Единственият начин, по който мога да си представя, че NULL подобряват производителността е, че в InnoDB страница с данни може да побере повече редове, ако редовете съдържат NULL. Така че вашите InnoDB буфери може да са по-ефективни.
Но ще бъда много изненадан, ако това осигури значително предимство на производителността на практика. Безпокойството за ефекта, който NULL имат върху производителността, е в сферата на микрооптимизацията. Трябва да насочите вниманието си другаде, в области, които дават по-голям ефект за парите. Например добавяне на добре подбрани индекси или увеличаване на разпределението на кеша на базата данни.