×   缘起---闲逛博客园 前几天的时候,在某一QQ群看到一条消息“XXX酒店开房XXXBTXX迅雷BT下载”,当时是一目十行的心态浏览,目光掠过时, 第一反应我想多了~以为是XX种子(你懂的~),但并不感兴趣. 直到又回到博客园逛时,看到一篇最多评论的文章: 看看多线程的效率有多差劲! - 张浩华 - 博客园 http://www.cnblogs.com/zhhh/p/3385751.html 于是点击进去了.这时,我才回想起来,当时是自己邪想多了...... 原来是2000w条开房数据…
原文:曲演杂坛--一条DELETE引发的思考 场景介绍: 我们有一张表,专门用来生成自增ID供业务使用,表结构如下: CREATE TABLE TB001 ( ID ,) PRIMARY KEY, DT DATETIME ) 每次业务想要获取一个新ID,就执行以下SQL: INSERT INTO TB001(DT) SELECT GETDATE(); SELECT @@IDENTITY 由于这些数据只需保留最近一天的数据,因此建立一个SQL作业来定期删除数据,删除脚本很简单: DELETE TO…
在前段时间,曾写过一篇关于SQL问题的文章,测试杂谈--一条SQL引发的思考(一). 今天这篇,算是个问题记录吧,问题并不复杂,但对于测试同学而言,确实是个需要关注的点. 问题分析 最近在日常工作中,又遇到一个报错,日志中的具体报错如下: res=500 en**** Server Error,error trace StatementCallback; bad SQL grammar [UPDATE dep SET h = CONCAT('test San'Zhang', substring(…
此篇只是个人记录,相信各位大神早已轻车熟路,不喜勿喷:有错之处,欢迎指正. 有一天收到新人的咨询,是关于sql的问题. 问题1:为什么sql查询的数据与界面展示的不准确: 问题2:为什么sql查询时间那么久. 在仔细查看sql后,问题得到解决.这个问题很简单,来看sql,如下所示: SELECT v.ep_id, COUNT(*) FROM dw_l_v v WHERE v.id = 'XXX' AND v.ep_id = 'XXX' OR v.ep_id = 'XXX' OR v.ep_id…
从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO ,NAME ) DEFAULT 'nihao') GO CREATE INDEX IX_RANDTEST_ID ON RANDTEST(ID) GO INSERT INTO RANDTEST DEFAULT VALUES SELECT * FROM RANDTEST 第一种写法:大家会想到ORDER BY NEWID() SET…
原文地址:https://www.cnblogs.com/sujing/p/11110292.html 要了解数据库索引的底层原理,我们就得先了解一种叫树的数据结构,而树中很经典的一种数据结构就是二叉树!所以下面我们就从二叉树到平衡二叉树,再到B-树,最后到B+树来一步一步了解数据库索引底层的原理! 二叉树(Binary Search Trees)   二叉树是每个结点最多有两个子树的树结构.通常子树被称作“左子树”(left subtree)和“右子树”(right subtree).二叉树常…
TODO:从数据库中随机抽取一条记录 1.最直接,最粗暴的方法先计算记录的总数,然后选择一个从0到记录总数之间的随机数n,利用skip跳过n条记录,这是效率低下的的方法,首先的记录总数,在用skip会很耗时间: 2.那么有什么办法能够提供效率呢,方法就是给每条记录添加一个0-1的随机因子random. "random" : 0.5127909016609585 想要在记录中查找一个随机记录,只要计算出一个随机数并作为查询条件就好了 Result = db.getCollection('…
目录 数据库连接 创建数据库表 数据库插入操作 数据库查询操作 数据库更新操作 删除操作 执行事务 错误处理 数据库连接 连接数据库前,请先确认以下事项: 您已经创建了数据库 TEST. 在TEST数据库中您已经创建了表 EMPLOYEE EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME. 连接数据库TESTDB使用的用户名为 "testuser" ,密码为 "test123",你可以可以自己设定或者直接使用…
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:<OCM 基本班课程表> 二:<OCM_第一天课程:OCM课程环境搭建> 三:<OCM_第二天课程:Section1 ->配置 Oracle 网络环境 > 四:<OCM_第三天课程:Section1 ->表空间的操作和管理.服务配置 > 五:<OC…
今日内容介绍 1.JDBC 2.DBUtils 01JDBC概念和数据库驱动程序 * A: JDBC概念和数据库驱动程序 * a: JDBC概述 * JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API, 可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.是Java访问数据库的标准规范 * JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序. * JD…
  基于dockerfile创建nginx+PHP+mongo数据库_完美搭建     第一步:   从git上:git clone http://git.oursdata.com/wangyue/dockerfiles.git   进入下图的文件夹中 然后执行以下的说明执行步骤   第二步: 开发环境dockerfile   BUILD docker build -t silentmoon/centos7:devel -f centos7_ssh_devel . //咖啡时间,请保持网络连接,…
laravel如何从mysql数据库中随机抽取n条数据 一.总结 一句话总结: inRandomOrder():$userQuestions=UserQuestion::where($map)->inRandomOrder()->take($neededQuestionNum)->get(); 二.laravel如何从mysql数据库中随机抽取n条数据(高性能) 转自或参考:laravel如何从mysql数据库中随机抽取n条数据(高性能)https://blog.csdn.net/wei…
1.如何将数据库中数据按照行(即一整条数据)取出来,存入到数组当中? public static String str = null; // 将StringBuffer转化成字符串 public static StringBuffer sb = new StringBuffer(); // StringBuffer便于字符串的增删改查操作 public static void main(String[] args) { String className = "net.sourceforge.jt…
##一.基础 ## *    插入                   INSERT INTO table_name ( field1, field2,...fieldN )                                        VALUES                                        ( value1, value2,...valueN ); *    修改                                update t…
mysql统计指定数据库的各表的条数 SELECT table_schema,table_name,table_rows,CREATE_TIME FROM TABLES WHERE TABLE_SCHEMA='cloud_**'  ORDER BY table_rows DESC;…
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> 28ms 最后以28ms的运行速度告结, 有更好的解法或者减少算法复杂度的博友可以给我发消息也可以评论, 我们一起讨论. 第一次在leetcode解算法题,想来个开门红,先挑选一道简单的题目AC了再说.leetcode对每道题都有一个难度提示,分别是easy,medium,hard 于是在第一页中看到了几道标…
在runtime.h中,你可以通过其中的一个方法来获取实例变量,那就是class_copyIvarList方法,具体的实现如下: - (NSArray *)ivarArray:(Class)cls { unsigned int stuIvarCount = 0; Ivar *ivars = class_copyIvarList(cls, &stuIvarCount); if (stuIvarCount == 0) { return nil; } NSMutableArray *arr = [[N…
由一个emoji引发的思考 从毕业以来,基本就一直在做移动端,但是一直就关于移动端的开发,各种适配问题的解决,在日常搬砖中处理了就过了,也没有把东西都沉淀下来,觉得甚是寒颜.现就一个小bug,让我们来了解一下我们天天都在用的emoji,对于开发来说,是一个怎么样的存在. 背景 之前在做一个留言功能时,发现在其中一台安卓5.0的手机上,输入emoji糊掉了,成了如下这样的情况 这是skr啥玩意儿呀,怎么看上去像某白色幼虫. 与是我又试了好几个手机,ios都没有问题,甚至一台安卓机中之霸(安卓4.0…
2018年12月12日18:44:53 一个ScheduledExecutorService启动的Java线程无故挂掉引发的思考 案件现场 不久前,在开发改造公司一个端到端监控日志系统的时候,出现了一个bug:有个扫表写日志的线程无故挂掉. 顺藤摸瓜 我看了很久的代码,都没有想出来有什么地方有逻辑问题.万金油的方法是,重启.当我满心欢喜地认为重启是个好方法的时候,问题又重现了. 我有点无奈地看着自己的代码 本我:堪称完美的逻辑,还有什么地方是我没有注意到的吗? 真我:当然有了,你这个菜鸟,你不知…
背景 近期公司项目中加了一个积分机制,用户登录签到会获取登录积分,但会出现一种现象就是用户登录时会增加双倍积分,然后生成两个积分记录.此为问题  问题分析 项目采用微服务架构,下图为积分机制流程   worker通过分析日志记录从而判断用户当天积分是否增加,进而进行积分增加增添记录或者无操作. 两个worker对积分数据库进行同时写入,造成积分双倍增加的情况,那问题找到了,就是对数据库并发写入的问题. 解决方法,加锁  锁 共享锁 定义:共享锁就是允许多个线程同时获取一个锁,一个锁可以同时被多个…
Bootstrap-Table 关于客户端模式(由 计算所有页的的总数引发的思考) 昨天群里有小伙伴询问 Bootstrap-Table 有没有计算所有页的总数. [吐槽]★隔壁老王-杭州 @F4NNIU 使用footerFormatter的时候,好像只能统计当前页的值,是否用统计全部数据值的参数? ,footerFormatter: function (data) { ​ var field = this.field; ​ var total_sum = data.reduce(functio…
Go select 死锁引发的思考 https://mp.weixin.qq.com/s/Ov1FvLsLfSaY8GNzfjfMbg一文引发的延续思考 上文总结 总结一 package main import ( "fmt" ) func main() { ch := make(chan int) go func() { select { case ch <- getVal(1): fmt.Println("in first case") case ch &…
原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引发的思考 最近有个需求——记录应用中某些接口被调用的轨迹,说白了,记录下入参.出参等即可. 我选用ApsectJ解决这个问题,前期讨论说在接口层埋点,但这样有个问题,代码侵入比较严重,需要修改每个需要关注的接口实现类.经过一番讨论,决定使用AOP拦截所有这样的接口. 后面又有个新的要求——沙箱环境拦…
由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1&sn=ecde4899e96d37849a5f17ac12d03018&scene=0#wechat_redirect 由于业务需要,最近在云上新购买了一批centos7.0的服务器,用脚本批量添加了用户(脚本请见我之前的博客/秘钥认证用户自动控制:http://my.oschina.net/pwd…
[思考]由安装zabbix至排障php一系列引发的思考 linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识: 由于linux本身的应用依赖的库和其它环境环环相扣,但又没有很好隔离应用,所以催生了Docker这种虚拟容器的技术, 虽然我现在还没有去掌握Docker,但我已经觉得迫在眉睫需要去学习并好好应用上了. 大概2016年8.9月份我知道了有Docker这种东西,到2017年1月份也只是大致上对它有一些了解和看了有关它技术的开篇的文档. 因为其它如mysql.n…
原文:由<a href = "#" > 引发的思考 前阵子在一个移动项目中,通过 <a href = "#" >  的方式 绑定click 事件来提交一个表单,由于表单信息比较敏感,于是采用的post 同步提交的方式,原本到也没有什么.后来万恶的PM说 “你这个按钮呀,要固定在底部比较好” ,于是乎就通过 position:fixed 固定到底部了.那么,问题来了 , 在ios 下,虚拟键盘是浮在页面上层的,导致的结果是当键盘收起后,浮在最底…
一次composer错误使用引发的思考 这个思考源自于一个事故.让我对版本依赖重新思考了一下. 事故现象 一个线上的管理后台,一个使用laravel搭建的管理后台,之前在线上跑的好好的,今天comopser install之后,出现错误信息: [2019-02-25 16:00:33] production.ERROR: Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) {"exception&q…
int.TryParse非预期执行引发的思考   问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Request.QueryString["id"] = null int.TryParse( Request.QueryString["id"], out id ); //使用 id 进行其他操作... 因为Request.QueryString["id"]…
目录 密码验证连续多位相同或者顺序字符引发的思考 需求 思考 实现 总结 参考 密码验证连续多位相同或者顺序字符引发的思考 需求 虽然用户对于这种复杂的密码验证恨之入骨,但是有时出于安全的考虑,我们系统不得不强制要求用户设置更高强度的密码. 如:不能连续出现多位相同或者连续的字符. 思考 对于常规的验证,我们通常使用正则表达式,所以我一开始也从这方面入手,但始终没有一个实现的思路. 后来看到有人用字符数组,通过下标判断是否连续,再加上偶然看到有人在讨论 ASCII 码,灵机一动,结合这两者就是一…
由[].slice.call()引发的思考   经常看到大家用[].slice.call()或者Array.prototype.slice.call():  我一直是一知半解的,今天算是基本弄清楚了,在此记录一下. 可能最常见的是Array.prototype.slice.call(arguments)  就是截取(更重要的是获取,slice是得到子数组)函数的参数,然后让arguments等“伪数组”也可以使用数组的各种方法. 这种写法看上去很是牛逼,然而,一查才发现,ES6已经优雅的实现,毕…