1、为什么要尽量设定一个主键?
主键是数据库确保数据行在整张表唯一性的保障,即使业务上本张表没
有主键,也建议添加一个自增长的 ID 列作为主键。
设定了主键之后,在后续的删改查的时候可能更加快速以及确保操作数
据范围安全。
2、主键使用自增 ID 还是 UUID?
推荐使用自增 ID,不要使用 UUID。
因为在 InnoDB 存储引擎中,主键索引是作为聚簇索引存在的,也就是
说,主键索引的 B+树叶子节点上存储了主键索引以及全部的数据(按照
顺序)。
如果主键索引是自增 ID,那么只需要不断向后排列即可。
如果是 UUID,由于到来的 ID 与原来的大小不确定,会造成非常多的数
据插入,数据移动,然后导致产生很多的内存碎片,进而造成插入性能
的下降。
总之,在数据量大一些的情况下,用自增主键性能会好一些。
3、字段为什么要求定义为 not null?
null 值会占用更多的字节,且会在程序中造成很多与预期不符的情况。
4、如果要存储用户的密码散列,应该使用什么字段进行存储?