The official Xbox Auth documentation refers to XUID as an unsigned int64, and therefore, I expected the SQL equivalent, BIGINT, to be the most efficient way to store it on a MySQL database.
However, I found out that many programmers are storing XUIDs on their databases as VARCHAR(20), after some research these are the key differences I found between these data types:
This is how this question came to my mind, what is the most efficient way to store XUIDs on SQL?
If a XUID is a 64-bit unsigned integer, then it can have values from 0 to 18,446,744,073,709,551,615. So VARCHAR(10) will not be large enough; you would need to use VARCHAR(20).
It should be slightly more efficient (and use a little less database disk space) to store it as a BIGINT UNSIGNED (always eight bytes) than VARCHAR(20) (up to 21 bytes depending on the magnitude of the number being stored, assuming a one-byte-per-digit character set for the column).