SQL
文章平均质量分 79
picoasis
这个作者很懒,什么都没留下…
展开
-
MYSQL:事务 transaction
是什么:必须在一起执行的一串sql操作,通常会有2个及以上的数据表被更改。数据表之间的数据相互关联,如果没有一起执行,会出现数据的业务意义错误。例如,销售流水表和库存表。事务的4个特性:原子性,隔离性,一致性,持久性。原子性:就是要求这一串sql语句要么全部执行成功,要么全部执行失败。但是事务不能保证做到这一点,需要根据mysql的执行结果,选择进行事务提交commit或者回滚rollback。事务的创建:...原创 2021-11-30 10:43:50 · 689 阅读 · 0 评论 -
MYSQL: having , where 的区别与联系
目录having的使用区别合并使用HAVING后面需要使用聚合函数去重的效率对比:(distinct + where)vs(group by + having)sql语句的执行顺序会变化——mysql优化器1054报错having的使用having :step1:我们要把所有的信息都准备好,包括从关联表中获取需要的信息,step2: 对数据集进行分组,形成一个包含所有需要的信息的数据集合。step3: 接着,再通过 HAVING 条件的筛选,得到需要的数据原创 2021-11-18 16:58:38 · 1030 阅读 · 0 评论 -
MYSQL:主键
主键的作用:要唯一的定位到一条数据.使用自增主键还是自己指定主键要看项目是单机系统还是分布式系统。如果是单机的,自增主键完全没有问题。如果是分布式的,一般在业务层自己生成全局唯一id,插入到数据库。下面是详细的说明。目录业务字段做主键自增字段做主键手动赋值主键业务字段做主键用业务字段做主键,看起来很简单,但是我们应该尽量避免这样做。因为我们无法预测未来会不会因为业务需要,而出现业务字段重复或者重用的情况。以业务字段做主键还有一个后果就是,索引的叶子结点中的内容占用原创 2021-11-16 22:16:58 · 1021 阅读 · 0 评论 -
mysql:外键和join
外键可以保护数据一致性,防止误删。高并发场景下,由于速度问题,不适合使用外键约束,但仍需在应用层面检查数据一致性,以保护数据。原创 2021-11-16 22:01:02 · 2263 阅读 · 0 评论