用户登录
用户注册

not in/ not exists 有哪些可以替代操作


  需求
例如一张A表(id,userid,info);其中id为自增长主键。存在userid重复记录;并一直有新数据增加,现需要根据userid去重并实时插入表B。
  用SQL语法来解释:
--获取表B中记录最大idselectmax(id)fromB<spanstyle="color
  • 0
  • 0
  • 0
  • 0
  • 0

腾讯面试:SQL语句执行很慢的原因有哪些?


  说实话,这个问题可以涉及到MySQL的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。
  之前腾讯面试的实话,也问到这个问题了,不过答的很不好,之前没去想过相关原因,导致一时之间扯不出来。所以今天,我带大家来详细扯一下有哪些原因,相信你看完之后一定会有所收获,不然你打我。
  开始装逼:分类讨论
  一条SQL语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。
  1、大多数情况是正常的,只是偶尔会出现很慢的情况。
  2、在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。
  针对这两种情况,我们来分析下可能是哪些原因导致的。
  针对偶尔很慢的情况
  一条SQL大多数情况正常,偶尔才能出现很慢的情况,针对这种情况,我觉得这条SQL语句的书写本身是没什么问题的,而是其他原因导
  • 0
  • 0
  • 0
  • 0
  • 0

数据库原理 - 序列2 - 事务隔离级别和死锁检测


  本文节选自《软件架构设计:大型网站技术架构与业务架构融合之道》第6.4章节。作者微信公众号:
架构之道与术。进入后,可以加入书友群,与作者和其他读者进行深入讨论。也可以在京东、天猫上购买纸质书。6.4.1事务的四个隔离级别
  通俗地讲,事务就是一个“代码块”,这个代码块要么不执行,要么全部执行。事务要操作数据(数据库里面的表),事务与事务之间会存在并发冲突,就好比在多线程编程中,多个线程操作同一份数据,存在线程间的并发冲突是一个道理。
事务与事务并发地操作数据库的表记录,可能会导致下面几类问题,如表6-3所示。
表6-3事务并发导致的几类问题
  为了解决上面几类问题,数据库设置了不同的事务隔离级别。不同数据库在事务隔离级别的定义和实现上会有
  • 0
  • 0
  • 0
  • 0
  • 0

psql 关于主键自增的问题


  在psql中往往我们需要设置一个自增的主键id字段,psql中不像SQLServer那样点选打钩傻瓜式就能设置好的,是需要创建序列的:CREATESEQUENCE,关键字SEQUENCE。
  我们先看看创建过后的结果:
  (用的Navicat工具)
  我们可以看到设置自增后字段默认:nextval('bid_id_seq'::regclass),bid为我的表名。
  故可以译为:下一个值为此表下此字段的注册自增序列。
   如何创建id自增字段?答:建表时使用“serial”关键字,“PRIMARYKEY”关键字为设置主键。故设置主键自增id方式如下: </
  • 0
  • 0
  • 0
  • 0
  • 0

SQL优化:应避免使用 in和 not in


  为什么:
  IN和NOTIN是比较常用的关键字,为什么要尽量避免呢?
  1、效率低
  项目中遇到这么个情况:
  t1表和t2表都是150w条数据,600M的样子,都不算大。
  但是这样一句查询
  直接就把我跑傻了。。。十几秒,检查了一下phone在两个表都建了索引,字段类型也是一样的。原来notin是不能命中索引的。。。。</p
  • 0
  • 0
  • 0
  • 0
  • 0
1  

分享至

长按复制下方链接,去粘贴给好友吧:
软件
前端设计
程序设计
Java相关