SQL表设计

 

1.一些情况下显示主键索引便于查找,提高查询效率

2.自增;UUID可能出现页分裂,产生表碎片,性能不好(插入时间长、占用空间大)

3.有业务含义可能涉及内容的修改,数据在磁盘的储存位置可能发生变更;且有业务含义的情况下主键不是顺序自增的,可能存在新插入的数据没有先前插入的数据大的情况,这两种情况可能导致页分裂、产生空间碎片

4.一般用tinyint型,enum order by操作效率低,需要额外操作,且当存储数字时不利于操作(如:0 ,‘0’)

5.精确到分可以用int,以元为基本单位用decimal(不用以二进制储存的float和double,存在误差)

6.varchar 直观,但插入数据没有校验(存在歧义2019111),时间比较运算复杂;timestamp 4字节 支持跨时区,但范围有限 1970~2038;datetime 8字节 范围大,但不支持跨时区;bigint 8字节 表示范围大,但需要自己维护,不方便

7.效率低;一般用HDFS(Hadoop File System)储存;mysql提供两种存储大文件的类型text和blob但不常用,因为内存临时表不支持,查询时只能使用磁盘临时表,查询效率低,以及数据内容大,binlog内容多导致主从同步效率低

8.索引性能不好,增加数据库使用开销;查询时可能出现不可预料的结果,而浪费时间排查bug

 

PS:自增主键用完(通常不会出现这种情况就已经分库分表),mysql5.6以后的版本可以通过改从库表结构(如BigInt)再主从切换解决(可能出现数据丢失的情况)

 

转载于:https://www.cnblogs.com/zimsky/p/11225266.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值