INT(10) ne signifie pas un nombre à 10 chiffres, cela signifie un nombre entier avec une largeur d'affichage de 10 chiffres. Que vous mettiez INT(2) ou INT(10), MySQL ne stocke toujours qu'un INT (non signé, dans ce cas) qui a une valeur maximale de 4294967295.
Vous pouvez utiliser un BIGINT au lieu de INT pour le stocker sous forme numérique. Je ne le recommanderais pas, cependant, car cela ne permet pas les numéros internationaux. Si vous êtes certain que votre application n'utilisera que des numéros américains, l'utilisation de BIGINT vous fera économiser 3 octets par ligne sur VARCHAR(10) -- si ce genre de chose vous concerne.
Puisqu'il s'agit d'un numéro de téléphone (et que vous ne ferez donc pas de calculs numériques), essayez d'utiliser un VARCHAR(20). Cela vous permet de stocker correctement les numéros de téléphone internationaux, en cas de besoin.