I’m looking at a db schema for a project I’m inheriting. There are many instances of binary answers being stored as INT(11) rather than TinyInt(1), which is the way I’ve normally handled this type or storage.
I’ve checked the data and everything is either “1” or “0”. Is there any reason to or not to change the datatype to TinyInt(1) Unsigned for all of these instances?
Similarly, if something like “last_name” if the current column allows varchar(255), would switching to varchar(100) create any gains? I’m more interested in performance/efficiency than in just limiting data storage at this point.
Thanks,
D.
I would say definitely go ahead with the changes to the boolean columns. (Note: Actually if you’re using MySQL 5+, I would use the bit datatype instead of tinyint).
As far as the varchar columns, it doesn’t actually make a difference changing 255 to 100 length.
From The SQL Docs:
So as long as its under 255, you’re really not gaining much in terms of memory storage.
That being said, by limiting the size of the names, less data needs to be transferred between your SQL server and your application.