我是靠谱客的博主 悦耳乌冬面,最近开发中收集的这篇文章主要介绍SQL(N)[MySQL-表结构设计]1.为什么要尽量设定一个主键?2.主键使用自增ID还是UUID?3.字段为什么要求定义为not null?4.如果要存储用户的密码散列,应该使用什么字段进行存储?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SQL-MySQL-表结构设计

  • 1.为什么要尽量设定一个主键?
  • 2.主键使用自增ID还是UUID?
  • 3.字段为什么要求定义为not null?
  • 4.如果要存储用户的密码散列,应该使用什么字段进行存储?

1.为什么要尽量设定一个主键?

主键是数据库确保数据行在整张表唯一性的保障,即使业务上本张表没有主键,也建议添加一个自增长的ID类作为主键。设定了主键之后,在后续的删除、修改、查询的时候可以更加快速,并能确保操作数据范围安全。

2.主键使用自增ID还是UUID?

推荐使用自增ID,不要使用UUID。
因为在MySQL的默认存储引擎InnoDB中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(暗转顺序存储),如果主键索引是自增ID,那么只需要不断向后排列即可。如果是UUID,由于到来的ID与原来的大小不确定,会造成非常多的数据插入、数据移动,然后导致产生很多的内存碎片,进而造成插入性能的下降。
总之,在数据量大的情况下,用自增主键的性能会比UUID的性能好。
补充知识点:主键是聚簇索引:如果没有主键,InnoDB会选择一个唯一键来作为聚簇索引,如果没有唯一键,会生成一个隐式的主键。

3.字段为什么要求定义为not null?

null值会占用更多的字节,且会在程序中造成很多与预期不符的情况。

4.如果要存储用户的密码散列,应该使用什么字段进行存储?

密码散列,盐,用户身份证号等固定长度的字符串应该使用char,而不是varchar来存储,这样可以节省空间且提高检索效率。

最后

以上就是悦耳乌冬面为你收集整理的SQL(N)[MySQL-表结构设计]1.为什么要尽量设定一个主键?2.主键使用自增ID还是UUID?3.字段为什么要求定义为not null?4.如果要存储用户的密码散列,应该使用什么字段进行存储?的全部内容,希望文章能够帮你解决SQL(N)[MySQL-表结构设计]1.为什么要尽量设定一个主键?2.主键使用自增ID还是UUID?3.字段为什么要求定义为not null?4.如果要存储用户的密码散列,应该使用什么字段进行存储?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部