oracle/mysql/redis/mybatis
数据库
keep12moving
虚心学习,慢慢进步
展开
-
mysql的max case when和group_concat
mysql的max case when和group_concat原创 2023-02-20 22:26:31 · 452 阅读 · 1 评论 -
delete、drop、truncate有什么区别?
delete、drop、truncate有什么区别?转载 2022-07-18 18:22:43 · 81 阅读 · 0 评论 -
Oracle 建立索引及SQL优化
Oracle 建立索引及SQL优化转载 2022-07-01 09:42:01 · 189 阅读 · 0 评论 -
Redis Setnx 命令
Redis Setnx 命令转载 2022-06-09 14:20:42 · 619 阅读 · 0 评论 -
excel匹配两列数据
遇到的问题:如下图,B列比A列缺省一些行,B列和C列是一一对应的,现在想让B列带上C列和A列匹配D列=VLOOKUP(A1,B:B,1,0),E列=VLOOKUP(D1,$B$1:$C$1331,2,0)可以搞定原创 2022-03-24 15:23:14 · 2262 阅读 · 0 评论 -
mysql :SQL语句中的替换函数replace
update claim_document set document_origin_url =replace(document_origin_url,'http://tpa.jluomi.com/TpaPlatForm','https://tpa.jluomi.com/TpaPlatForm')原创 2022-03-11 17:29:51 · 3004 阅读 · 0 评论 -
数据库开发小知识普及二十--左右SQL执行计划妙招
执行计划SQL写法差异改变之三_rowid的影响环境准备:create table t as select * from dba_objects;语句1:update t set object_id=rownum;create index idx_object_id on t(object_id);select rowid from t where object_id=8;ROWID原创 2022-03-02 18:11:28 · 306 阅读 · 0 评论 -
数据库开发小知识普及十九--左右SQL执行计划妙招
执行计划SQL写法差异改变之二_rownum分页环境准备:create table t as select * from dba_objects;语句1:select * from (select t.*,rownum as rn from t t) a where a.rn>=1 and a.rn<=10;语句2:select * from (select t.*,rownum as rn from t t where rownum<=10) a where原创 2022-02-16 18:24:31 · 395 阅读 · 0 评论 -
数据库开发小知识普及十八--左右SQL执行计划妙招
执行计划SQL写法差异改变之一_with子句环境准备:create table t_with as select rownum id,a.* from dba_source a where rownum<100001;语句1:从SQL的执行计划看,需要四次回表,CPU消耗和读取的数据量都较大。语句2:从SQL的执行计划看,回表两次,SYS_TEMP_0FD9D7081_A31928F5是内存中的缓存。这就是with子句的魅力,一次获取后缓存在内存中多次使用,避免了多次回表,原创 2022-02-14 13:34:13 · 164 阅读 · 0 评论 -
数据库开发小知识普及十七--左右SQL执行计划妙招
原创 2022-01-26 17:36:46 · 718 阅读 · 0 评论 -
数据库开发小知识普及十六--如何通过执行计划识别低效的SQL
1.从案例辨别低效SQL如何快速判断SQL执行计划是否高效,其实这是一个知识和经验的完美结合过程。我们可以敏锐的从输出执行计划的关键字中看出执行计划好坏的蛛丝马迹,下面一起来看看都有哪些维度。...原创 2022-01-26 17:32:59 · 802 阅读 · 0 评论 -
数据库开发小知识普及十五--如何通过执行计划识别低效的SQL
1.从案例辨别低效SQL如何快速判断SQL执行计划是否高效,其实这是一个知识和经验的完美结合过程。我们可以敏锐的从输出执行计划的关键字中看出执行计划好坏的蛛丝马迹,下面一起来看看都有哪些维度。(3)谨慎观察排序与否查看该sql是否排序,此处说明在内存中排序,并未到磁盘中排序。排序动作在CPU性能上开销较大,如果PGA区(内存)无法容纳下排序的尺寸,而进入磁盘排序,那将成为更大的性能杀手。因为索引本身是有序的,在‘order by 列’的语句中,我们就可以考虑在该列建一个索引来消除排序,尤原创 2022-01-19 10:10:03 · 125 阅读 · 0 评论 -
数据库开发小知识普及十四--如何通过执行计划识别低效的SQL
1.从案例辨别低效SQL如何快速判断SQL执行计划是否高效,其实这是一个知识和经验的完美结合过程。我们可以敏锐的从输出执行计划的关键字中看出执行计划好坏的蛛丝马迹,下面一起来看看都有哪些维度。(1)返回行与逻辑读比率总共获取1条记录(A-ROWS),产生1048次逻辑读(Buffers),这个肯定有很大的性能问题。从执行计划也可以看出,这个sql走全表扫描,这种情况是很适合通过添加索引来提升性能。...原创 2022-01-05 11:35:12 · 375 阅读 · 0 评论 -
数据库开发小知识普及十三--如何读懂SQL执行计划
1.解释经典执行计划方法关于执行计划,最重要的一点是要读懂执行的顺序,只有这样,才可以像Oracle一样思考问题。这里我们先定义两种类型:1.单独型;2.联合型。联合型还分为非关联的联合型和关联的联合型,总结说明如图:...原创 2022-01-05 11:33:32 · 409 阅读 · 0 评论 -
数据库开发小知识普及十二--如何读懂SQL执行计划
数据库开发小知识普及十二--如何读懂SQL执行计划1.解释经典执行计划方法关于执行计划,最重要的一点是要读懂执行的顺序,只有这样,才可以像Oracle一样思考问题。这里我们先定义两种类型:1.单独型;2.联合型。上周介绍了单独型,这周介绍一下联合型。联合型还分为非关联的联合型和关联的联合型,关联的联合型如例:联合型的关联型(NL)接下来的例子比较经典,请看id=2和id=3处,这里显然是联合型,不过我们再观察,id=2处的A-Rows为10,id=3处的starts=10,说明emp访问原创 2021-12-20 15:17:01 · 545 阅读 · 0 评论 -
数据库开发小知识普及十一--如何读懂SQL执行计划
1.解释经典执行计划方法关于执行计划,最重要的一点是要读懂执行的顺序,只有这样,才可以像Oracle一样思考问题。这里我们先定义两种类型:1.单独型;2.联合型。上周介绍了单独型,这周介绍一下联合型。联合型还分为非关联的联合型和关联的联合型,非关联的联合型如例:select b from TEMP01union allselect b from TEMP03union allselect riskcode from TEST01;如图执行计划id=2,id=3,id.原创 2021-12-10 16:22:19 · 455 阅读 · 0 评论 -
数据库开发小知识普及十--如何读懂SQL执行计划
数据库开发小知识普及十--如何读懂SQL执行计划1.解释经典执行计划方法关于执行计划,最重要的一点是要读懂执行的顺序,只有这样,才可以像Oracle一样思考问题。这里我们先定义两种类型:1.单独型;2.联合型。首先我们来看看单独型。(1)单独型请看下面SQL执行计划id=3处,通过索引定位policyno=‘6420110130120180000149’,然后观察id=2处,通过rowid回到表中得到serialno等其他列,然后根据SERIALNO<10的条件再过滤部分数据。最后完成原创 2021-12-06 14:42:58 · 480 阅读 · 0 评论 -
数据库开发小知识普及九--如何读懂SQL执行计划
数据库开发小知识普及九--如何读懂SQL执行计划1.数据库统计信息的收集关于收集统计信息的方法比较多,可以是针对整个数据库的收集,可以是针对整个schema的收集,也可以是针对具体某个表和索引的收集。从操作实用性来看,主要的日常操作都是手动收集某个表或索引的统计信息,方法如下:--收集表和索引统计信息exec dbms_stats.gather_table_stats(ownname => 'ABC',tabname => 'LOGSEND_1220',method_opt=&g原创 2021-12-06 14:41:05 · 515 阅读 · 0 评论 -
数据库开发小知识普及八--如何读懂SQL执行计划
数据库开发小知识普及八--如何读懂SQL执行计划1.SQL执行计划的选定依据Oracle的执行计划的选择是有套路的。这里有一个重要的关键字:统计信息。有了这个统计信息,Oracle就可以高效快速的完成SQL的解析过程(判断出代价更低的执行计划)。2.什么是统计信息呢?举例:select * from t1,t2 where t1.id=t2.id and id=6;这个语句。从原理上来说,先访问小表,其成为驱动表,性能更高,因此如果我们知道t1和t2表谁更小,问题就解决了。表的大小是数据库从原创 2021-12-06 14:38:33 · 409 阅读 · 0 评论 -
数据库开发小知识普及七--如何读懂SQL执行计划
数据库开发小知识普及七--如何读懂SQL执行计划1.SQL执行计划是什么?一个SQL语句,例如:select * from t1,t2 where t1.id=t2.id and id=6;这样的语句,开发人员实际上只关心能否通过访问t1、t2两个表得到两个表相关联的数据,他们并没有指定该SQL如何执行,是先访问t1表再访问t2表呢,还是先访问t2表再访问t1表呢?对SQL来说,这两种访问方式就是两个不同的执行计划,而且必须选择一种访问路径。到底选择哪一种呢?答案很简单,那种执行开销更低,就意味原创 2021-11-15 19:43:58 · 483 阅读 · 0 评论 -
数据库开发小知识普及六--索引的各种开销
数据库开发小知识普及六--索引的各种开销1.回表开销大家都知道索引存储索引列的值和rowid,通过rowid来定位回到表中获取其他字段值。其实这个回表动作的开销也很大。结论:索引查询要尽可能避免回表,如果不可避免,则需要关注聚合因子是否过大。聚合因子越小,回表的代价越低。2.更新开销索引本身有序。更新操作后数据变化了,需要维护索引的有序性,产生开销。当索引过多时对三种更新语句的影响:a.对insert语句的负面影响最大,只要有索引,插入就变慢,索引越多越慢。b.对delete语句来说原创 2021-11-03 10:56:05 · 838 阅读 · 0 评论 -
数据库开发小知识普及五--SQL什么情况下不走索引呢?
1.索引逻辑失效(1)用索引反而代价变高当应用索引检索数据,返回大量记录时,这时候用索引肯定有错,索引范围查询访问一般适合返回少量记录的情况,否则全表扫描或者全索引扫描就可以。(2)发生索引列的类型转换在表字段设计时,有一个非常重要的原则,什么类型的字段存什么类型的值,否则就会发生隐式类型转换。例如:Create table t_col_type(id varchar2(20));Select * from t_col_type where id=6;这种情况,id列会被to_n原创 2021-10-27 14:28:18 · 981 阅读 · 0 评论 -
数据库开发使用规范--SQL脚本规范
1.MySQL库中创建新表SQL,后面一定要带上新表赋查询权限的赋权语句,因为所有新建的库表qryuser用户默认无查询权限,需单独赋权。grant select on 库名.表名 to 'qryuser'@'%';2.当给生产表添加新字段时,注意不要加default默认值,原因是给现有表添加带默认值的字段,非常慢,存在影响生产运行的巨大风险。3.SQL注释要单独一行,不要加在SQL末尾,原因是容易报错。MySQL库注释用#加空格开头,Oracle库用--加空格开头。4.SQL脚本中禁止使用co原创 2021-10-20 16:58:35 · 819 阅读 · 0 评论 -
数据库开发小知识普及四:
数据库开发小知识普及四:1.组合索引高效设计要领(1)适当的场合能避免回表如果查询的字段恰好都在组合索引中,实现了索引覆盖,即可避免回表操作,增快查询效率。(2)组合列返回越少越高效在a字段上查询返回的记录比较多,在b字段上查询返回的字段也比较多,如果a和b字段同时查询,返回的记录比较少,那就适合建联合索引了。注意:过多的字段建联合索引往往是不可取的,因为这样索引也必然过大,不仅影响了定位数据,更严重影响了更新性能,一般不宜超过3个字段组合。(3)组合两列谁在前更合适a.在等值查原创 2021-10-13 17:59:18 · 62 阅读 · 0 评论 -
mysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别
mysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别_marco的博客-CSDN博客_varchar100可以存多少汉字转载 2021-10-09 19:00:57 · 806 阅读 · 0 评论 -
数据库开发小知识普及三:
数据库开发小知识普及三:1.Oracle BTREE索引的结构Oracle BTREE索引的结构是由Root(根块)、Branch(茎块)和Leaf(叶子块)三部分组成的。其中,Leaf(叶子块)主要存储了key column value(索引列具体值),以及能具体定位到数据块所在位置的rowid。Root(根块)和Branch(茎块)存储的是子节点的位置信息。如图所示,BTREE索引结构的三大重要特点:(1)索引的高度较低(2)索引存储列值(3)索引本身有序2.索引回.原创 2021-09-29 18:20:54 · 124 阅读 · 0 评论 -
数据库开发小知识普及二
数据库开发小知识普及二:1.索引小知识(1)在平时使用索引时,要注意索引不能存储空值的特点。(2)当执行count()类型的sql时,如果表中有主键或者非空字段的索引,是能够走索引的。如果所有的索引列都没有指定非空,count()无法使用索引。(3)对某列进行sum/AVG等聚合sql,如果sum或者avg的列指定了非空,并且有索引,也是能够使用索引的。如果列允许为空,用不到索引。(4)当执行max/min这种sql时,无论列是否为空,有索引的话,都可以用到索引。(5)注意传入变量的原创 2021-09-23 16:36:28 · 91 阅读 · 0 评论 -
数据库开发小知识普及一
数据库开发小知识普及一:1.表设计方面:(1)Oracle表记录在5000w以上的大表,建议使用分区表。分区表的重要特性:高效的分区消除,高效的数据清理,高效的分区转移。(2)使用分区表时,在sql的编写上注意尽量多的使用分区键,才能起到分区消除的效果。(3)分区表的索引分为全局索引和局部索引,使用局部索引注意使用场景,不然走索引反而效率低。(4)注意当清理分区数据之后,小心全局索引失效。(5)推荐大家一种表--全局临时表,它的特点:a.高效删除记录,基于会话的全局临时表,ses原创 2021-09-15 18:41:10 · 154 阅读 · 0 评论 -
mysql delete 删除语句报1064错误
https://blog.csdn.net/wxzxmq/article/details/106855214?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-1.control&spm=1001.2101.3001.4242转载 2021-07-23 20:41:48 · 870 阅读 · 0 评论 -
Invalid bound statement (not found)出现原因和解决方法
https://blog.csdn.net/weixin_44695793/article/details/107752054?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242转载 2021-06-15 18:33:06 · 920 阅读 · 0 评论 -
mysql中 signed 与 unsigned 详解
https://blog.csdn.net/qq_45445841/article/details/104002092转载 2021-06-03 15:47:07 · 447 阅读 · 0 评论 -
mysql varchar类型转换int类型
https://blog.csdn.net/qq355667166/article/details/5897778?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogComm转载 2021-06-03 15:45:26 · 240 阅读 · 0 评论 -
Navicat 查询结果无法修改
https://blog.csdn.net/mcskyding/article/details/51198651?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu转载 2021-05-25 19:19:50 · 409 阅读 · 0 评论 -
MySQL模糊查询(like)时区分大小写
https://blog.csdn.net/weixin_34295316/article/details/85912389?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242转载 2021-04-15 10:29:24 · 467 阅读 · 0 评论 -
mybatis中传入多个参数的4个解决方法
https://blog.csdn.net/weixin_37891479/article/details/80525612?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachi转载 2021-03-30 16:43:05 · 141 阅读 · 0 评论 -
Mysql给用户赋值查询新建表的权限
GRANT SELECT ON table TO qryuser@'%';原创 2021-03-18 16:43:15 · 413 阅读 · 0 评论 -
Navicat查询到Mysql的数据不能修改
https://blog.csdn.net/Vasilis_1/article/details/72356732?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6.control转载 2021-03-15 11:06:01 · 492 阅读 · 0 评论 -
面试题:redis缓存雪崩、击穿、穿透
https://blog.csdn.net/qq_35190492/article/details/102889333?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.non转载 2020-07-06 18:01:24 · 252 阅读 · 0 评论 -
猎聘网面试题:redis系列之数据库与缓存数据一致性解决方案
https://blog.csdn.net/simba_1986/article/details/77823309https://blog.csdn.net/u011832039/article/details/78924418转载 2019-12-06 23:47:26 · 221 阅读 · 0 评论 -
redis实现原理和应用(redis读书笔记)
https://blog.csdn.net/xianghanscce/article/details/89158404转载 2019-11-17 13:36:19 · 110 阅读 · 0 评论