首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏凹凸玩数据

    SQL优化场景+案例

    场景分析 案例1、最左匹配 案例2、隐式转换 案例3、大分页 案例4、in + order by 案例5、范围查询阻断,后续字段不能走索引 案例6、不等于、不包含不能用到索引的快速搜索。 语句:修改SQL、IN 查询分段、时间查询分段、基于上一次数据过滤 改用其他实现方式:ES、数仓等 数据碎片处理 场景分析 案例1、最左匹配 索引 KEY `idx_shopid_orderno` (` 推荐:Java面试练题宝典 案例2、隐式转换 索引 KEY `idx_mobile` (`mobile`) SQL语句 select * from _user where mobile=12345678901 案例3、大分页 索引 KEY `idx_a_b_c` (`a`, `b`, `c`) SQL语句 select * from _t where a = 1 and b = 2 order by c desc 推荐:SQL高级知识 案例5、范围查询阻断,后续字段不能走索引 索引 KEY `idx_shopid_created_status` (`shop_id`, `created_at`, `order_status

    68640发布于 2021-05-07
  • 来自专栏小树洞

    SQL优化案例1

    原始SQL如下,MySQL版本5.7.19。

    48220发布于 2021-02-25
  • 来自专栏chimchim要努力变强啊

    flink sql实战案例

    目录 一、背景 二、流程 三、案例 1.flink sql读取 Kafka 并写入 MySQL source sink insert 2.flinksql读kafka写入kudu source sink insert 四、注意点 1.断点续传 2.实时采集 3.回溯问题 ---- 一、背景 使用flink sql实时同步一下数据 二、流程 总的来说就三步 source-->>sink->>insert 三、案例 1.flink sql读取 Kafka 并写入 MySQL source CREATE TABLE source_table ( user_id VARCHAR, item_id

    1.2K20编辑于 2022-11-13
  • 来自专栏大数据成神之路

    Hive SQL经典优化案例

    HiveSQL经典优化案例一: 1.1 将要执行的查询(执行了 1个多小时才出结果): SELECT dt as DATA_DATE,STRATEGY,AB_GROUP,SOURCE, count HiveSQL经典优化案例二: 问题描述:一个复杂的SQL,查询执行一段时间后报错:基本上是查不出来; 分析函数对于大表来说不是 hive的强项,这个时候我们将其分解成很多子集,并且合理利用 hive HiveSQL经典优化案例三: 如下SQL,用到了 PERCENTILE_APPROX 函数,问题描述:如下SQL,用到了 PERCENTILE_APPROX 函数,个人初步分析认为:由于用到该函数的次数太多 我仔细查了一下该函数,发现:它是支持“数组传参”的,那么就不难找到优化该SQL的方法了。 ? 3.1 原SQL性能测试: ? 3.2 优化后的SQL,性能测试: ? 优化后的SQL,性能提升了4倍多。 ? ? ? 版权声明: 本文为大数据技术与架构整理,原作者独家授权。未经原作者允许转载追究侵权责任。 编辑|冷眼丶

    1.8K30发布于 2020-09-27
  • 来自专栏腾讯云数据库专家服务

    MySQL案例sql_mode详解

    前言 相信看过上一篇文章《MySQL案例:一个数据丢失惨》的童鞋,都应该意识到,sql_mode是一个非常关键的配置,接下来就带来该配置项的详细解析。 sql_mode详解 sql_mode,会直接影响SQL语法支持和数据校验,它包含非常多的选项,其中5.7版本的默认值是“ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE 最重要的选项 sql_mode最重要的选项,包括以下3个: (1)ANSI:该选项决定SQL语法支持,设置为ANSI,会更加遵守标准SQL语法。 总结 通过上面的学习,相信大家对sql_mode各选项,都有较为详细的了解;关于sql_mode如何设置,个人建议如下: (1)对于5.5/5.6版本,sql_mode建议参照5.7默认值进行设置; ( 2)对于5.7版本,sql_mode保持默认值即可; (3)对于8.0版本,sql_mode也保持默认值即可。

    2.4K60发布于 2020-12-12
  • 来自专栏杨建荣的学习笔记

    SQL优化案例一则

    这是学习笔记的第 1978 篇文章 今天优化了几个SQL问题,拿出来两个做下总结和分享。 第一条SQL如下,内容做了删减。 ,tid 数据量:3000多万 索引字段:cdb_members.uid 数据量:700多万 索引字段:cdb_memberfields.uid 数据量:3000多万 对于这样一个SQL 所以整个SQL的关注目标先在于where子句: p.tid='xxxxx' AND p.invisible='0' 根据测试,这个数据量也相对小一些: >>SELECT count(*) -> ref: test.m.uid rows: 1 Extra: 3 rows in set (0.00 sec) 从执行计划来看,瓶颈点就在于第1部分了,整个SQL 改造后的语句如下: SELECT SQL_NO_CACHE p.*, m.uid, m.username, 。。。

    64820发布于 2019-05-17
  • 来自专栏捡田螺的小男孩

    SQL优化思路+经典案例分析

    SQL调优这块呢,大厂面试必问的。最近金九银十嘛,所以整理了SQL的调优思路,并且附几个经典案例分析。 1.慢SQL优化思路。 慢查询经典案例分析 2.1 案例1:隐式转换 我们创建一个用户user表 CREATE TABLE user ( id int(11) NOT NULL AUTO_INCREMENT, userId 如下,查询条件列是user_id 2.3 案例3:深分页问题 limit深分页问题,会导致慢查询,应该大家都司空见惯了吧。 limit深分页为什么会变慢呢? 日常开发中,大家注意一下这个场景哈 参考与感谢 慢SQL优化一点小思路[1] SQL优化万能公式:5 大步骤 + 10 个案例[2] 参考资料 [1] 慢SQL优化一点小思路: https://juejin.cn /post/7048974570228809741#heading-7 [2] SQL优化万能公式:5 大步骤 + 10 个案例: https://developer.aliyun.com/article

    1.6K10编辑于 2023-02-24
  • 来自专栏Khan安全团队

    通过 SQL 函数绕过 SQL 注入 WAF 的案例研究

    下面的示例描述了在 SQL 注入中使用 false 值的传统方式。 And 0 And 1 And 50=60 Any number that are not the same will equal to (0, false, null)kleiton0x7e通过 SQL 函数绕过 SQL 注入 WAF 的案例研究 使用 And 0 的另一种方法 以下方法是其各自的 SQL 支持的新发现的查询,作为声明 false、null 或 0 值的新方法。 下面的示例描述了在 SQL 注入中使用 false 值的传统方式。 -0),(0*1337-0), (0*1337-0),(0*1337-0),(0*1337-0)--+ 使用 0xHEX 值绕过静态 Web 应用程序防火墙 由于 0xHEX 值在 SQL

    58420编辑于 2022-01-27
  • 来自专栏bisal的个人杂货铺

    优雅编写SQL的几个案例

    罗老师写的这篇文章非常实用《优雅的SQL编写》,借鉴于此。 https://www.modb.pro/db/29713? xzs= 在分析v$sql或者dba_hist_sqlstat的时候,由于时常需要计算单次执行的相关指标,目前看到多数人用的是类似这样的写法, elapsed_time / CASE WHEN 这时候可以优雅地利用科学计数法写为另一种写法, 这就很准确且易识别的转换成秒了, 转成秒: elapsed_time / 1e6 SQL> select 1e6 from dual; 1E6 power(2,10)/power(2,10)/power(2,10) =buffer_gets*power(2,13)/power(2,30) =buffer_gets/powe(2,17) 只能感叹SQL 另外,如果分析的dba_hist_sqlstat, 不可避免的需要按时间段去做过滤,通常的做法是,  select sql_id, to_char(begin_interval_time

    59440发布于 2021-09-08
  • 来自专栏leehao

    SQL中with recursive用法案例详解

    SQL提供了递归查询,可将当前查询结果作为下一次的查询集合进行再次查询,最后得到我们想要的结果。

    44510编辑于 2025-02-11
  • 来自专栏数栈技术分享

    数栈SQL优化案例:OR条件优化

    本文整理自:袋鼠云技术荟 | SQL优化案例(2):OR条件优化 数栈是云原生—站式数据中台PaaS,我们在github上有一个有趣的开源项目:https://github.com/DTStack/flinkx 常见OR使用场景,请阅读以下案例案例一:不同列使用OR条件查询 1. 待优化场景 SELECT .. .. 通过对比优化前后的执行计划,可以明显看出,将SQL拆分成两个子查询,再使用union对结果进行合并,稳定性和安全性更好,性能更高。 案例二:同一列使用OR查询条件 1. SQL的性能,需要进行比较改写。 可以看出优化后的SQL比原始SQL快了30秒,执行效率提升约50倍。 案例三:优化关联SQL OR条件 1.

    97910发布于 2021-05-14
  • 来自专栏互联网开发者交流社区

    SQL基础分页存储过程(案例一)

    1 --分页 存储过程 案例 2 3 -- 所执行的存储过程 4 create proc pageForUsers 5 @currPage int,

    60250发布于 2018-07-04
  • 来自专栏后端从入门到精通

    Sql依赖注入-架构案例(五十五)

    五、该物流车辆管理系统需抵御常见的SQL注入攻击,请用200字以内的文字说明什么是SQL注入攻击,并列举出两种抵御SQL注入攻击的方式。 答案: Sql注入指展示层页面输入框通过字符串输入sql,直接把参数加入sql查询,导致恶意查寻或者修改数据库。 1、正则表达式 2、用指定参数的方式查sql。 3、数据库加密。 答案: 数据持久层是分层架构里面与数据交互的层面,负责解耦业务与数据库的关系,可以隐式sql语句,透明的提供程序员调用,数据库事务管理,映射对象/数据的策略。 1、解耦 2、隐式sql语句和数据库事务管理,更方便使用,。 【问题:2.1】状态图和活动图是软件系统设计建模中常用的两种手段,请用200字以内文字简要说明状态图和活动图的含义及其区别。

    37510编辑于 2023-10-24
  • 来自专栏MySQL参数系列

    sql_mode案例一则

    BY, expression #1 of SELECT list contains nonaggregated column 'aaa.aa.b'; this is incompatible with sql_mode ba | +------+-----------------+ 2 rows in set (0.00 sec) mysql> show variables like '%sql_mode =' '; Query OK, 0 rows affected (0.00 sec) mysql> show variables like '%sql_mode%'; +------------- --+-------+ | Variable_name | Value | +---------------+-------+ | sql_mode | | +---------- | +---------------+-------+ 1 row in set (0.00 sec) mysql> show variables like '%sql_mode%'; +----

    40140编辑于 2023-02-15
  • 来自专栏沃趣科技

    SQL优化案例-从执行计划定位SQL问题(三)

    SQL出现问题,能从执行计划中快速的定位哪部分出现问题很重要,SQL文本如下(为保证客户隐私,已经将注释和文字部分去掉): SELECT /*+ index(i IDX_INVM_BEC)*/ RQ, 文本寻找SQL代码是AND I.BRANCH_NO IN (SELECT JGM FROM JGDY WHERE JGM='1700' OR SJJGM='1700')也就是【SELECT JGM FROM 那么就很好办了,ID4和ID15应该走hash join,查看outline data信息,还没办法使用db_name信息引导执行计划走hash join,那么只能改写SQL。 改写SQL如下: SELECT  RQ,JGM,BZ,CUSTOMER_TYPE,   B.CUSTOMER_NO,   B.CUSTOMER_NAME AS DKHM,   B.ACCT_NO DKZH 由13分钟变为5秒钟执行完,看ID19还要执行999k次,查询ID18谓词信息对应SQL如下,确实是要返回999k行数据。

    57860发布于 2018-07-02
  • 来自专栏全栈工程师修炼之路

    SQL注入原理分析与绕过案例.md

    0x00 数据库分类SQL注入原理分析 0.SQL测试语句 # 检测语句 and 1 = 1 # 不用说了,大家都明白 xor 1 = 2 # 异或,此时正常返回数据 # 注入判断 and exists 如:ID=Request(“ID”) , 如果未对cookie进行过滤这将会导致SQL风险;通过asp的Request对象使用文档知道 ASP WEB服务是怎样读取数据的,它是先取GET中的数据,没有再取 问题就来了~~~ 比如: SQL Cookies 中断注入点:http://weiyigeek.xxx/index.asp? 加载网页,显示不正常(没有输参数的原因) --#下面我们以手动测试为例 1.打开浏览器的js控制台 > document.cookie="ID=1024" --#重新加载网页,显示正常 2.进行SQL 注入实例 0x02 SQL绕过案例 1) 常用绕过技巧列表 1.

    1.4K10发布于 2020-10-23
  • 来自专栏全栈工程师修炼之路

    SQL注入原理分析与绕过案例.md

    [TOC] 0x00 数据库分类SQL注入原理分析 0.SQL测试语句 # 检测语句 and 1 = 1 # 不用说了,大家都明白 xor 1 = 2 # 异或,此时正常返回数据 # 注入判断 and 如:ID=Request(“ID”) , 如果未对cookie进行过滤这将会导致SQL风险;通过asp的Request对象使用文档知道 ASP WEB服务是怎样读取数据的,它是先取GET中的数据,没有再取 问题就来了~~~ 比如: SQL Cookies 中断注入点:http://weiyigeek.xxx/index.asp? 加载网页,显示不正常(没有输参数的原因) --#下面我们以手动测试为例 1.打开浏览器的js控制台 > document.cookie="ID=1024" --#重新加载网页,显示正常 2.进行SQL 注入实例 0x02 SQL绕过案例 1) 常用绕过技巧列表 1.

    71530编辑于 2022-09-28
  • 来自专栏北亚数据恢复中心

    SQL server数据库恢复案例分析

    客户主要数据为SQL server数据库,经初步检测,索引位图有部分损坏,因此若提取数据卷后数据有损坏,可针对数据库进行修复。 5.数据库修复 数据文件提取完成,尝试进行附加,由于索引位图有部分损坏,导致SQL server数据库无法直接附加,根据SQL server数据也结构和数据记录存储规则对数据库进行一系列的修复操作。

    1.1K20发布于 2021-11-08
  • 来自专栏沃趣科技

    SQL优化案例-使用with as优化Subquery Unnesting(七)

    如下SQL,找出库中非唯一索引,那么大家可能会这么写SQL: SELECT SEGMENT_NAME,SUM(BYTES/1024/1024) m FROM DBA_SEGMENTS WHERE SEGMENT_NAME 在SQL语句where子查询后有not in、not exists、in、exists时,CBO会尝试将子查询展开(unnest)消除filter,但是上面的例子CBO并没有做到,下面我们看下执行计划。 SQL如下: select AREA_NAME,sum(reve) from t_order o where exists (select AREA_ID from t_customer from x where x.AREA_ID <> o.f_area_id) group by AREA_NAME; 103006.png 在FILTER中,NOT IN(NOT EXISTS)后的SQL

    1K40发布于 2018-10-31
  • 来自专栏沃趣科技

    SQL优化案例-正确的使用索引(二)

    下面sql 30秒执行出结果,查看sql谓词中有like,我们知道谓词中有这样的语句是不走索引的(为了保护客户的隐私,表名和部分列已经重命名)。 查看索引情况如下 表过滤返回数据量如下: SQL> select count(*) from OOOO_XXXCHECKLOG; 2799616 select count(*) from OOOO_XXXCHECKLOG 下面我们改写sql如下 SELECT /*+ index(OOOO_XXXCHECKLOG IDX_ID_TYPE_RE) 3*/ CHECKNUM AS PINGZBSM, CHECKDATE, XXXMODE idx_date_seal_re on OOOO_XXXCHECKLOG(CHECKDATE,REVERSE(xxxtype)); 可以看到,逻辑读降到64424,50个物理读是因为刚刚创建索引的原因,sql

    74960发布于 2018-07-02
领券