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

    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

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

    SQL优化案例1

    原始SQL如下,MySQL版本5.7.19。

    48820发布于 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.3K20编辑于 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
  • 来自专栏网安菜鸟成长记

    sql-labs-less11less12|SQL注入

    前言: 此篇讲解sql-labs系列第11关和第12关,这一关明显跟前面有点不太一样,传参方式由GET传参改为了POST传参,不过除了传参方式有所变化个人感觉其他的注入方法跟第一关差不多,我用的是hackbar 正文: less11: 直接上图: ? 可以看到传入参数以后没有任何回显,这一点跟第一关不太一样,参数名可以通过查看器查看(F12),下面进行测试: ? 可以看到数据库名成功爆出,后面就跟第一关一样了,这里不再讲解,语句可以参考第一篇sql-labs-less1/2 less12: 12关让11关的单引号换为双引号再加上)右括号闭合就可以了,语句如下:

    82110发布于 2020-10-28
  • 来自专栏机器学习/数据可视化

    SQL进阶-11-having子句

    SQL进阶-11-having子句 HAVING子句是SQL中非常重要的功能,本文将再次介绍该子句的使用。作者指出:SQL语句处理的对象是集合而不是记录,我们要有面向集合的思考方式。 SQL实现 全称量化实现 所有的队员都是待命,这是一个全称量化的命题,我们使用not exist来表达 都是待命状态等价于没有不是待命状态 -- 1、全称量化实现 select team_id SQL实现 having实现 满足需求城市的特点:排除重复元素前后的个数不同!!! 如果不存在重复元素,不管是否加上distinct可选项,count的结果是相同的 ? when count(*) <> max(seq) - min(seq) + 1 then '存在缺失编号' else '连续' end as gap from Seqtable; 查找最小的缺失值编号的SQL

    95110发布于 2021-03-01
  • 来自专栏腾讯云数据库专家服务

    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语法。 NO_AUTO_VALUE_ON_ZERO:该选项决定自增列的生成;一般来说,向自增列插入0或null,系统会自动生成下一个自增值插入;启用后,向自增列插入0会保留原值0,插入null才会自动生成下一个自增值插入 (11 2)对于5.7版本,sql_mode保持默认值即可; (3)对于8.0版本,sql_mode也保持默认值即可。

    2.5K60发布于 2020-12-12
  • 来自专栏捡田螺的小男孩

    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
  • 来自专栏杨建荣的学习笔记

    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, 。。。

    66220发布于 2019-05-17
  • 来自专栏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

    59120编辑于 2022-01-27
  • 来自专栏机器学习/数据可视化

    Spark笔记11-Spark-SQL基础

    Spark SQL基础 Hive Hive会将SQL语句转成MapReduce作业,本身不执行SQL语句。 作业 将HiveQL解析换成了Spark上的RDD操作 存在的两个主要问题: spark是线程并行,mapreduce是进程级并行 spark在兼容Hive的基础上存在线程安全性问题 Spark SQL 关系数据库在大数据时代下不再满足需求: 用户要从不同的数据源操作不同的数据,包含结构化和非结构化 用户需要执行高级分析,比如机器学习和图形处理等 大数据时代经常需要融合关系查询和复杂分析算法 Spark SQL 解决的两大问题: 提供DF API,对内部和外部的各种数据进行各种关系操作 支持大量的数据源和数据分析算法,可以进行融合 架构 Spark SQL在Hive 兼容层面仅仅是依赖HiveQL解析、Hive 元数据 执行计划生成和优化是由Catalyst(函数式关系查询优化框架)负责 Spark SQL中增加了数据框DataFrame,数据的来源可以是RDD,也可以是Hive、HDFS、Cassandra

    58110发布于 2021-03-02
  • 来自专栏小工匠聊架构

    MyBatis-11MyBatis动态SQL之【if】

    动态SQL概述 if概述 在WHERE条件中使用if 需求 1.UserMapper接口中增加接口方法 2.UserMapper.xml配置动态SQL 3.单元测试 在UPDATE条件中使用if 需求 配置动态SQL 3.单元测试 动态SQL概述 MyBatis的强大特性之一就是使用动态SQL,我们在使用JDBC的时候,根据不同的条件拼接SQL语句不仅不能忘了必要的空格,还要注意省略掉列名列表最后的逗号 MyBatis的动态SQL则让你摆脱这种痛苦。 注意SQL中where关键字后面的条件 where 1 = 1, 又有两个条件都是动态的,如果没有1=1这个默认条件,当两个if都不满足时,最后生成的SQL就会以where结束,不符合SQL规范,会报错 id = #{id} 很明显SQL语法是错误的。

    89930发布于 2021-08-17
  • 来自专栏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 1000000 Oracle的科学计数法很简单,前面是一个数字,中间跟一个e(大小写不限),后面跟一个整数(正负不限)就可以, n.nEm = n.n * 10^m 例如, 1.1e1 = 1.1*10^1=11 另外,如果分析的dba_hist_sqlstat, 不可避免的需要按时间段去做过滤,通常的做法是,  select sql_id, to_char(begin_interval_time

    60940发布于 2021-09-08
  • 来自专栏啄木鸟软件测试

    通过案例带你轻松玩转JMeter连载(11

    JMeter是通过多线程的方式来模拟多并发,从而达到性能测试的目的。线程组通过右键点击菜单,选择“添加->线程(用户)->线程组”而获得。其界面如图61所示。

    84530发布于 2021-10-08
  • 来自专栏互联网开发者交流社区

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

    1 --分页 存储过程 案例 2 3 -- 所执行的存储过程 4 create proc pageForUsers 5 @currPage int, count int output --总记录数 8 as 9 declare @firstIndex int 10 declare @lastIndex int 11

    60650发布于 2018-07-04
  • 来自专栏leehao

    SQL中with recursive用法案例详解

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

    49310编辑于 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.

    99110发布于 2021-05-14
  • 来自专栏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%'; +----

    40840编辑于 2023-02-15
  • 来自专栏后端从入门到精通

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

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

    39410编辑于 2023-10-24
  • 来自专栏Java项目实战

    1100万大表11SQL优化

    时间:上周六刚刚从外面回来,报出生产数据慢SQL开始优化select t.x te.xfrom o_detail tleft join p_detail teon t.A = te.A and t.B

    27830编辑于 2023-06-30
领券