LinkNemo

  • Nemo

    SQL like%%模糊搜索优化方案一 -- 主键查询

    mysql>selectcount(*),now()frommusic_song_base;+----------+---------------------+|count(*)|now()|+----------+---------------------+|474025|2018-05-2515:30:59|+----------+---------------------+1rowinset(0.20sec)这张music_song_base表已经有47w的数据,这时候尝试使用like%%搜索关键字:mysql>selectid,name,coverfrommusic_son......
    2018/05/25 15:39:35发表 2138赏阅 0点评
  • Nemo

    SQL中instr和like的使用区别

    1、instr函数 instr函数是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置,如果在源串中没有找到子串,则返回0。instr函数定义如下:/**返回子字符串在源字符串中的位置(字符串位置从1开始,而不是从0开始)*@paramstr源字符串*@paramsubstr子字符串*@paramposition检索位置,可省略(默认为1),参数为正时,从左向右检索,参数为负时,从右向左检索*@paramoccurrence检索子串出现次数(即子串在源串第几次出现),可省略(默认为1),值只能为正整数,否则会报错*@return返回子字符串在源字符串中......
    2018/05/25 15:09:08发表 1806赏阅 0点评
  • Nemo

    jdbc更新/新增后返回记录id

    简单记录下,爬虫项目中需要用到的,细节代码就不贴出来了。/***增加、删除、改*@paramsql*@paramparams*@return*@throwsSQLException*/publicstaticIntegerupdateByPreparedStatement(Stringsql,List<Object>params)throwsSQLException{intresult=-1;pstmt=connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);intindex=1;if(params!=nul......
    2017/10/16 15:32:58发表 518赏阅 2点评
  • Nemo

    SQL 使用like '%ABC' 和 like '%ABC%'的优化

    一般情况下,sql中使用col_namelike'ABC%‘的情况才能使用到col_name字段上的索引,这种情况不再赘述。如果是col_namelike'%ABC%'的情况,能否使用索引,怎样才能使用索引?答案是:可以使用索引,但是需要改写SQL并创建reverse函数索引。一、col_namelike'%ABC'时的优化方法Testcase:    Createtablet1asselect*fromdba_objects;    Createindexidx_t1_objectname1ont1(object......
    2017/06/07 09:56:50发表 454赏阅 0点评
  • Nemo

    SQL查询优化记录

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。2.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:selectidfromtwherenumisnull可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:selectidfromtwherenum=03.应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。4.应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:selectidfro......
    2017/06/07 09:46:29发表 411赏阅 0点评
  • Nemo

    数据库事务设计相关

    1,保持事务短小2,尽量避免事务中rollback3,尽量避免savepoint4,默认情况下,依赖于悲观锁5,为吞吐量要求苛刻的事务考虑乐观锁6,显示声明打开事务7,锁的行越少越好,锁的时间越短越好STARTTRANSACTION:开始事务,autocommit设为0,如果已经有一个事务在运行,则会触发一个隐藏的COMMITCOMMIT:提交事务,保存更改,释放锁ROLLBACK:回滚本事务对数据库的所有更改,然后结束事务,释放锁SAVEPOINTsavepoint_name:创建一个savepoint识别符来ROLLBACKTOSAVEPOINTROLLBACKTOSAVEPOINTsav......
    2017/05/26 10:44:57发表 481赏阅 0点评
  • Nemo

    SQL not in 中包含null值是个悲剧

    如果使用notin那么子查询中一定不能有null值,如果子查询中有null值那么查询无结果返回。1.测试notin子查询中包含null值测试表test_tSQL>select*fromtest_t;IDNAME------------------------------1a2b3c测试表test_t2SQL>select*fromtest_t2;IDNAME------------------------------100ztest_t表插入一条空数据SQL>insertintotest_tvalues(4,null);1rowcreated.SQL>commit;Co......
    2017/03/22 20:14:38发表 405赏阅 0点评
  • Nemo

    Mybatis 延迟加载

    什么是延迟加载?resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。resultType无法实现延迟加载。延迟加载:先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。使用association实现延迟加载需要定义两个Mapper的方法对应的statement只查询订单信息在查询订单的statement中使用association去延迟加载(执行)下边的statement(关联查询用户信息)<selectid="find......
    2016/07/18 09:38:24发表 464赏阅 0点评

最新点击

热门人物

热门标签

回到顶部