本专区由 数据库 团队提供资讯和技术支持,欢迎社区成员申请加入管理小组。
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
本专区由 数据库 团队提供资讯和技术支持,欢迎社区成员申请加入管理小组。
你好,我是悟空。 > 本文已收录至Github,欢迎 Star:https://github.com/Jackson0714/PassJava-Learning > 个人网站:http://www.passjava.cn ## 一、什么是 TVP? 表值参数 Table-Value Parameter (TVP) 提供一种将客户端应用程序中的多行数据封送到 SQL Server 的简单方式,而不需要多次往返或特殊服务器端逻辑来处理数据。 您可以使用表值参数来包装客户端应用程序中的数据行,并使用单个参数化命令将数据发送到服务器。 传入... 展开更多
回复悟空领取1000+面试资料 这是悟空的第 109 篇原创文章 作者 | 悟空聊架构 来源 | 悟空聊架构(ID:PassJava666) 转载请联系授权(微信ID:PassJava) 阅读目录 一、背景 二、“大唐啥都有”网站的代码 三、SQL 中的事务 四、那如何优化无事务的代码? 五、如何解决无事务的问题? 六、具有补偿功能的解决方案 一、背景 悟空和师父一行人正在前往西天取经的路上,师父在线上买了一个福袋,订单状态显示订单已支付,但是电子福... 展开更多
你好,我是悟空。 > 本文已收录至Github,欢迎 Star:https://github.com/Jackson0714/PassJava-Learning > 个人网站:www.passjava.cn ## 概述 本篇主要是子查询基础的总结。 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/52026cb9315d40529ae576d993315ba1~tplv-k3u1fbpfcp-zoom-1.image) 关键词解释: **外部查询**:查询结果集返回给调用者 **内部查询**:查询结果集返回给外部查询。 **独立子查询**:独立子查询... 展开更多
你好,我是悟空。 > 本文已收录至Github,欢迎 Star:[https://github.com/Jackson0714/PassJava-Learning](https://github.com/Jackson0714/PassJava-Learning) > 个人网站:[www.passjava.cn](http://www.passjava.cn) # 概述 本篇主要是对集合运算中并集、交集、差集运算基础的总结。 集合运算包含三种: 1.并集运算 2.交集运算 3.差集运算 下面是集合运算的思维导图: ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbp... 展开更多
数栈是云原生—站式数据中台PaaS,我们在github和gitee上有一个有趣的开源项目:FlinkX,FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,也可以采集实时变化的数据,是全域、异构、批流一体的数据同步引擎。大家喜欢的话请给我们点个star!star!star! github开源项目:https://github.com/DTStack/flinkx gitee开源项目:https://gitee.com/dtstack_dev_0/flinkx 首先,本文所述均基于flink 1.5.4。 ... 展开更多
随着数据量持续增长,对合格数据专业人员的需求也会增长。具体而言,对SQL流利的专业人士的需求日益增长,而不仅仅是在初级层面。 因此,Stratascratch的创始人Nathan Rosidi以及我觉得我认为10个最重要和相关的中级到高级SQL概念。 那个说,我们走了! 1.常见表表达式(CTEs) 如果您想要查询子查询,那就是CTEs施展身手的时候 - CTEs基本上创建了一个临时表。 使用常用表表达式(CTEs)是模块化和分解代码的好方法,与您将文章... 展开更多
上千行的 SQL 代码常见,且永不过时! 经历了大大小小的 MIS 系统,小到几人用的协作系统,几十人用的 OA 系统,到上千人用的 MES/ERP 系统,再到百万人用的电商系统,存储过程的影子在半个世纪(20世纪70年代末开始)以来从未淡出它的战场。我们几个 SQL 老玩家经常自吹, SQL 是半衰期最长的编程语言。玩会它不用担心失业。 如何去阅读和拆解一个上千行的 SQL 存储过程,有四大步骤 :理解代码,分拆代码,改写代码和保存代码... 展开更多
# 一、背景 最近在看 `Sharding-JDBC`方面的内容,此处简单记录一下使用Sharding-JDBC中的`复合分片键`来实现分表的方法。 # 二、需求 假设我们有一张订单表`customer_order`,为了防止单表数据量太大,需要进行分表操作。 此处需要分为3个表 `customer_order_0`、`customer_order_1`和`customer_order_2` ## 1、对于客户端操作而言 1、同一个客户的订单,需要放到同一个表中。 2、根据订单号,需要知道这个订单在哪个中。 ## 2... 展开更多
最近,在TDengine的一个社区群中突发了一场严重的灌水事件。几位群友不眠不休地聊天,可以说是废寝忘食。那么到底是什么话题能让他们凌晨四点还在忘我地讨论? 这个话题就是——如何完善Docker环境下TDengine的集群搭建。 “什么?除了你们官方自己人之外,怎么会有用户加班加点地讨论如何完善Docker环境的集群搭建,这也太假了。” 好吧,我们承认:其实是有一个叫Oliver(群昵称)的用户遇到了这样的问题——辛辛苦苦搭起来D... 展开更多
**SQL语句性能优化** 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。 3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。 4,应尽... 展开更多
你好,我是 悟空。 概述: 本篇主要是对集合运算中并集、交集、差集运算基础的总结。 集合运算包含三种: 1.并集运算 2.交集运算 3.差集运算 下面是集合运算的思维导图: 为什么使用集合运算: 1.在集合运算中比联接查询和EXISTS/NOT EXISTS更方便。 在阅读下面的章节时,我们可以先把环境准备好,以下的SQL脚本可以帮助大家创建数据库,创建表,插入数据。 下载脚本文件:TSQLFundamentals2008.zip 一、集合运算 ... 展开更多
数栈是云原生—站式数据中台PaaS,我们在github和gitee上有一个有趣的开源项目:FlinkX,FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,也可以采集实时变化的数据,是全域、异构、批流一体的数据同步引擎。大家喜欢的话请给我们点个star!star!star! github开源项目:https://github.com/DTStack/flinkx gitee开源项目:https://gitee.com/dtstack_dev_0/flinkx MySQL是当下最流行的关系型数据库之一... 展开更多
原文地址:MySQL 要分表分库怎么进行数据切分? 数据库分布式核心内容无非就是数据切分(Sharding)以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,通过扩充主机的数量缓解单一数据库的性能问题,从而达到提升数据库操作性能的目的。 数据切分根据其切分类型,可以分为两种方式:垂直(纵向)切分和水平(横向)切分。 1.垂直(纵向)切分 垂直切分常见有垂直分库和垂... 展开更多
- 目前多数人的写法 - 优化方案 - 总结 根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢? 无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count 目前多数人的写法 多次REVIEW代码时,发现如现现象: 业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下 #### SQL写法: ``` SELECT co... 展开更多
SQL Server触发器在非常有争议的主题。它们能以较低的成本提供便利,但经常被开发人员、DBA误用,导致性能瓶颈或维护性挑战。 本文简要回顾了触发器,并深入讨论了如何有效地使用触发器,以及何时触发器会使开发人员陷入难以逃脱的困境。 虽然本文中的所有演示都是在SQL Server中进行的,但这里提供的建议是大多数数据库通用的。触发器带来的挑战在MySQL、PostgreSQL、MongoDB和许多其他应用中也可以看到。 什么是触发器 可以在... 展开更多
引言 春节前一个悠闲的上午,小航送了我,一袋每日坚果,他看我吃的正香,慢慢问道:”温哥,mysql的排序,有什么要注意的吗,不就是正排倒排吗?” 我一听他问我的问题,顿感每日坚果不香了,但是为了技术(mainzi),我装作大师的说道: “正排倒排,当然不是全部,你最少要知道,2个参数,1个优化,一种特殊情况” 注:东西不能乱吃啊 两个核心参数 sort_buffer_size 决定内排,外排。内排就是走内存,外排就是采用归并排序走... 展开更多
DELETE和TRUNCATE语句之间的区别是求职面试中最常见的问题之一。这两条语句都可以从表中删除数据。然而,也有不同之处。 本文将重点讨论这些差异,并通过实例加以说明。 TRUNCATE DELETE 从表中删除所有记录。我们不能使用WHERE删除特定的记录 删除所有记录,并可以使用WHERE删除特定记录。 不触发DELETE触发器。 触发DELETE触发器 重置标识列 不重置标识列 由于日志很少,所以速度更快。 由于执行了表扫描,以计算要删除的行数... 展开更多
❝ 作者:宫水三叶。现微软工程师(Java 后端方向),退役 OIer。 更多和 MySQL 面试 & 算法相关内容可点击「这里」关注 ~ 更好的阅读体验,请 点击 查看原文 转载需关注公众号联系开白名单 ~ ❞ 前言 业务中的各种查询通常对应了用户所看到的各项列表,列表一般是根据某个维度进行排序。 换句话说,业务中使用 SELECT 语句的时候除了不可避免的搭配 WHERE 以外,还会配合 ORDER BY 进行使用。 今天来好好聊聊 MySQL 的 ORDER ... 展开更多
前言 最近我在整理安全漏洞相关问题,准备在公司做一次分享。恰好,这段时间团队发现了一个sql注入漏洞:在一个公共的分页功能中,排序字段作为入参,前端页面可以自定义。在分页sql的mybatis mapper.xml中,order by字段后面使用$符号动态接收计算后的排序参数,这样可以实现动态排序的功能。 但是,如果入参传入: id; select 1 -- 最终执行的sql会变成: select * from user order by id; select 1 -- limit 1,20 --会...... 展开更多