当前位置:   article > 正文

MySql高阶应用碎片化整理_mysql整理碎片化语句

mysql整理碎片化语句

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. 如若联合索引使用了两个字段,应该是类似将两个字段进行封装变为一个node整体,然后按照字段顺序进行排序,如(name, salary),索引会将{name, salary}视为一个整体,数据优先按照name进行排序,name相同时按照salary排序,一直到叶子节点。 3. 前缀索引可能会适合一些字段内容较长,但存在数据头部的一段短数据区分度可能较高的数据。 4. 建立在频繁作为查询条件,且数据区分度较高的列以及表间关联列。对于文章中提到的覆盖索引,如果存在某个列值频繁使用的话,可能为了避免查询回表,也可以考虑对其建立索引。建索引就是为了查询快。

视图
1.视图使用场景。目前使用经历,当数据分布在多个表中,且表之间通过id进行关联,无法直观的在可视化工具中看到数据之间的关系(直接看到的都是其他表的id),此时会考虑建立视图,方便查看。 2.视图的数据表区别和联系,目前知道的就是视图并不会存储数据,个人理解视图就像一个保存好的sql语句,可以随时执行;视图数据来自数据表;视图理论上不建议使用增删改,就如同它的名字,只用作查看即可。 3.- 4.删除视图后,母表不会受到影响,受影响的是依赖该视图的其他视图,此时其他视图会阻止删除该视图。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/142136
推荐阅读
相关标签
  

闽ICP备14008679号