MySQL
文章平均质量分 51
程序员迪迦
【我是谁?】本人23届双非普本毕业,在互联网寒冬中通过秋招收到多家大厂的录用offer:快手、米哈游、京东、滴滴等,经历过几十次的大厂面试,实习和秋招面试经验充足。【目的是?】在我的成长过程中,许多前辈大佬帮助过我,我也真诚的希望能给大家带来一些帮助,关注我,进大厂不迷路!
展开
-
MySQL联表查询数据重复
原因 联表查询逻辑有问题 原代码 更改后代码 可以看到,这两次查询在联表时ON中的条件不一样,后面的多了一个筛选activity_id,如果不加这个条件的话,ON的时候主表与子表的记录不是一一对应的,会与本来我们不需要联表的数据进行联表,所以会产生很多虚假数据。 总结 我们要保证联表查询时ON中的条件能够是一一对应的,即通过这个条件应该只能对应从表的唯一一条记录,这样就不会产生虚假的联表数据。 ...原创 2021-08-04 09:48:04 · 1421 阅读 · 1 评论 -
MySQL事务隔离级别实现原理(和锁的关系)
隔离级别 并发带来的问题 脏读(dirty read) 如果一个事务读到了另一个未提交事务修改过的数据,如果另一个事务发生了回滚,那么该数据就是脏数据。 不可重复读(non-repeatable read) 如果一个事务只能读到另一个已经提交的事务修改过的数据,并且其他事务每对该数据进行一次修改并提交后,该事务都能查询得到最新值,即一个事务里两次查询一个数据的结果不一样。。 幻读(phantom read) 如果一个事务先根据某些条件查询出一些记录,之后另一个事务又向表中插入了符合这些条件的记录,原先的事务原创 2021-07-10 22:09:42 · 370 阅读 · 1 评论 -
MyBatis根据ID数组批量更新值
一开始想到的方法 通过每一个id查出每一个实体,然后改变每一个实体里的值,再每一个调用更新方法更新。 这样会很慢很慢,一次删除操作可能要访问几百次数据库。 public int deleteCourseClassificationByIds(Long[] ids) { //获取删除人userId long userId = SecurityUtils.getUserId(); //用课程分类id查出课程分类实体 for (Long id : i原创 2021-06-17 21:11:20 · 2710 阅读 · 2 评论 -
MySQL基础学习笔记(带目录)
MySQL产品的介绍和安装 MySQL服务的启动和停止 方式一:计算机--右击管理--服务 方式二:通过管理员身份运行 net start 服务名 net stop 服务名 MySQL服务的登陆和退出 方式一:通过MySQL自带的客户端 只限于root用户 方式二:通过windows自带的客户端即命令行 登陆 :mysql -h 主机名 -P端口号 - u用户名(连接远程服务器) mysql -u用户名(本机) ...原创 2020-11-11 10:15:39 · 2172 阅读 · 0 评论