MySql高阶应用碎片化整理

本文探讨了MySQL中case when的使用,5.x和8.x版本大小写敏感性的差异,以及时间戳存储的考量。在主键选择上,推荐使用bigint以备未来扩展。在索引方面,讲解了联合索引、前缀索引和覆盖索引的概念。视图的应用场景主要是数据整合展示,虽然不存储数据,但能提供便捷的查询视图。删除视图不影响源表,但会影响依赖它的其他视图。
摘要由CSDN通过智能技术生成

case when:
问题1 case when 经常统计、纵表转横表的时候用过,ifnull, if 个人相对用的少 问题2 这个亲身体会,mysql 5.x版本默认大小写不敏感,mysql 8 默认大小写敏感,修改的话必须是数据库初始化之前修改,之后更改是无效的

问:将时间转换为时间戳,并使用 int 或者 bigint 类型去存储,你觉得这样可行吗 ?
答: 用int/bigint和datetime存储在不同项目都使用过,感受就是int/bigint计算上很方便。特别是当前端项目对于时间展示有不同的格式需求的时候,数据库中存储的是int/bigint(或者vo层转换)直接返回给前端,前端可以更方便的定制格式而不用先把datetime转成时间戳。但是如果没这方面的需求,那直接存储datetime就是最方便的,可以减少转换的次数。所以个人觉得,从存储角度上来说,如果没有格式定制的需求,直接存储datetime最省事。
问:大多数时候,我们会选择将主键设置为 bigint 数据类型,你知道这是为什么吗 ?
答:为什么考虑将主键设置为 binint 类型?这里的主要思想就是为了将来的扩展,因为 int 类型的最大表示范围大约是 20 亿,这对于 99% 的项目都基本足够用了。但是,如果考虑到将来业务发展的比较迅速,就需要使用 bigint 了。如果一开始没有使用 bigint,而是使用 int,那么,后期的迁移将会是很大的工作量

索引

  1. 三阶 2. 如若联合
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值