zoukankan      html  css  js  c++  java
  • 20200423:假设一个订单的编号规则是AAAAOrder20200000001,AAAAOrder20200000002....后面的数字是自增长,如果订单号码达到AAAAOrder20201000000(100万),数据库中应该有100万条数据,此时我随机删除2条数据(物理删除,且不考虑日志和备份),请问怎么找到删掉的数据的编号?给出解题思路即可,答案需要在1秒内运行得到。

    福哥答案2020-04-23:

    分批查询:分成500次count(),每次count()肯定小于等于2000条数据,经过测试,一次count()在.1ms左右,500次就是500ms。
    二分法(时间微超):count(
    ) 50万,25万,12.5万依次下去。
    rownum作差(时间超):rownum和id首个差值,取id。
    错位join(时间超):SELECT C_ID FROM t_vd20190814 WHERE C_ID NOT IN (SELECT C_ID+1 FROM t_vd20190814)

  • 相关阅读:
    类加载
    LinkedList插入排序实现
    99乘法表
    关于IO流的抽象类
    分解质因数
    Struts2小demo遇到的几个问题
    Tomcat设置欢迎页问题
    数据库迁移
    EF – 1.模式
    正则表达式
  • 原文地址:https://www.cnblogs.com/waitmoon/p/13440933.html
Copyright © 2011-2022 走看看