博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 建表设计建议
阅读量:2444 次
发布时间:2019-05-10

本文共 611 字,大约阅读时间需要 2 分钟。

这里的建表建议是在MySQL数据库的innodb存储引擎下使用。

1、一定要设置主键,且主键尽量用自增ID去实现。

对于innodb,并没有强制我们使用主键,但是其实innodb内部的实现是必定含有主键的,因为我们的数据是存放在主键索引的B+树上的。对于没有建立主键的表,innodb会默认生成一个主键,但是这个主键我们是不可见的。而使用主键我们尽量用int或者bigint类型为主键,并且设置为自增。这里是考虑到MySQL在做插入数据时,能够更快的找到新插入主键的位置,提升速度,而数值型的主键更好去比较,自增的主键,会插入到最后一个节点上,这里减少了节点查找和树节点平衡移动的时间。如果使用的是随机生成的uuid,效率上会有一定的慢,一个是uuid是一个字符型,比较的速度会慢,另外就是插入可能不是最后一个节点,把时间浪费在节点的移动和平衡上了。

2、某些字段如果插入时确定是永远不可能为空的,那么设置为not null。

这里是考虑到是否为空的情况,innodb会为是否为空这个条件设计更多的考虑和存储,特别是对于索引字段,会消耗一些性能 。

3、索引规范:唯一索引以UK_开头,其他索引以IDX_开头

这只是一个规范而已,没有太多的讨论。

4、如果是一个部门公用一个数据库,且部门有多个业务线,建议建表的时候按照不同的业务设置不同的表前缀。

例如:采购purchase_开头,商品item_开头,数据data_开头

转载地址:http://yqnqb.baihongyu.com/

你可能感兴趣的文章
http与https_HTTP与HTTPS
查看>>
node.js运行js_Node.js运行时v8选项列表
查看>>
git教程_出色的Git教程的不完整列表
查看>>
Express,请求参数
查看>>
express发送文件_使用Express发送文件
查看>>
Object toString()方法
查看>>
调试JavaScript的权威指南
查看>>
我如何运行一些JavaScript代码段
查看>>
地理位置api_如何使用地理位置API
查看>>
数据结构设计 数据字典_Go数据结构:字典
查看>>
node_modules文件夹的大小不是问题。 这是一种特权
查看>>
dom 删除所有子元素_如何从DOM元素中删除所有子级
查看>>
html 打印样式控制_如何使用样式打印HTML
查看>>
gatsby_Next.js vs Gatsby vs create-react-app
查看>>
掌握React.Memo
查看>>
golang 延迟_了解Go中的延迟
查看>>
translatez_使用CSS translateZ()和Perspective()的技巧
查看>>
react 组件样式_如何设置React组件的样式
查看>>
node.js 模块_如何创建Node.js模块
查看>>
centos上安装git_如何在CentOS 8上安装Git
查看>>