Per MySQL 5.1 (e versioni successive), suddivide lo spazio di archiviazione per la parte intera e la parte frazionaria e crea spazio per l'archiviazione per il numero più grande possibile. Quindi per un DECIMAL(12,6), hai bisogno di 3 byte per la parte intera e 3 byte per la parte frazionaria. Non sembra che riduca lo spazio di archiviazione in base al valore; mette da parte la memoria indipendentemente dal valore.
Puoi controllare la documentazione qui:
Pagina manuale dei decimali MySQL