SQL优化技巧
SQL优化技巧
技巧1 比较运算符能用 “=”就不用“<>”
“=”增加了索引的使用几率。
技巧2 明知只有一条查询结果,那请使用 “LIMIT 1”
“LIMIT...[2019/6/6]
你真的知道怎么优化SQL吗
简介 虽然使用Explain不能够马上调优我们的SQL,它也不能给予我们一些调整建议,但是它能够让我们了解MySQL 优化器是如何执行SQL 语句的 通过Explain,我们可以分析出以下结果: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少...[2019/6/3]
腾讯面试:SQL语句执行很慢的原因有哪些?
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。 之前腾讯面试的实话,也问到这个问题了,不过答的很不好,之前没去想过相关原因,导致一时之间扯不出来。所以今天,我带大家来详细扯一...[2019/4/29]
为什么不推荐使用 select * ?是性能问题吗 ?
引言 大家在开发中,还有很多童鞋在写查询语句的时候,习惯写下面这种不规范sql select * from table 而不写成下面的这种规范方式 select col1,col2,...,coln from table 我也知道,这些童...[2019/4/18]
数据库原理 - 序列2 - 事务隔离级别和死锁检测
本文节选自《软件架构设计:大型网站技术架构与业务架构融合之道》第6.4章节。 作者微信公众号:架构之道与术。进入后,可以加入书友群,与作者和其他读者进行深入讨论。也可以在京东、天猫上购买纸质书。
6.4.1 事务的四个隔离级别
通俗地讲,事务就是一个“代码块&rdqu...[2019/4/12]
你还在 Select * 吗?
应用程序慢如牛,原因多多,可能是网络的原因、可能是系统架构的原因,还有可能是数据库的原因。
那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们也有莫大的关系。
程序中嵌入的一行行的SQL语句,如果使用了一些优化小技巧,定能达到...[2019/3/29]
如何在一个千万级的数据库查询中提高查询的效率?
在实际项目中,当数据库的数据达到千万级别时候,普通查询效率直线下降,而且当使用的where条件较多,其查询效率是让人无法容忍的。假如一个taobao订单查询详情要几十秒,可想而知的用户体验是多差。
下面是一些优化方法:
一、数据库设计方面
1、对查询进行优化,应尽量避免全表扫描,首...[2019/3/28]
sql与各个nosql数据库使用场景的讲解
sql为主干为什么我这样理解:
单从技术角度来说
关系型网格 充分的体现了现实事务
对事务,审计,闪存等等对数据的重视所以如何一些特别主要的数据,一定要放到sql里面。一个系统里面至少有用户信息是重要的数据。
所以sql必须有,而且数据存储的主干
什么时候引入no...[2019/3/27]
数据库语言分类DDL、DCL、DML详解
DML(Data Manipulation Language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
DDL(Data Definition Language):
DDL比DML要多,主要的命令...[2019/3/27]
关系型数据库范式 你了解吗?
设计关系数据库时,为了设计出合理的数据库表结构,需要遵从不同的规范要求,这些规范性要求被称为范式。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四...[2019/3/26]
SQL联合查询inner join、outer join和cross join的区别详解
对于开发使用到数据库的应用,免不了就要使用联合查询,SQL中常用的联合查询有inner join、outer join和cro join;这三者的区别很多人都应该不是很清楚,包括我自己,下面我们一起来看看,如果你使用join连表,缺陷的情况下是inner join,另外,开发中使用的left j...[2019/3/21]
SQL - Order By如何处理NULL
问题来了。执行SQL语句
SELECT * FROM tbl ORDER BY x, y
如果用来排序的列x、y当中有NULL值,那么它们的顺序是怎样的呢?
不同的数据库有不同的答案,目前的主流数据库大致分为两派。
一、NULL最大派
这一派包括Pos...[2019/3/20]
分组查询GROUP BY的使用与SQL执行顺序的讲解
在SQL中使用GROUP BY来对SELECT的结果进行数据分组,在具体使用GROUP BY之前需要知道一些重要的规定。
1、GROUP BY子句可以包含任意数目的列。也就是说可以在组里再分组,为数据分组提供更细致的控制。
2、如果在GROUP BY子句中指定多个分组,数据将在最后...[2019/3/20]
select count()和select count(1)的区别和执行方式讲解
在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。
往常我经常会看到一些所谓的优化建议不使用Count(* )而是使用Count(1),从而可以提升性能,给...[2019/3/20]
insert和select结合实现"插入某字段在数据库中的最大值+1"的方法
本文是mysql 数据库
问题一 将表一的数据导入表二:
将表一的数据导入表二:
将表二中的数据 插入到 表一,表一的列对应表二 select 出来的列
INSERT INTO 表一 (column1, column2, column3, column4)
select ...[2019/3/15]

8本最受欢迎的SQL书籍
结构化查询语言SQL在20世纪70年代发展起来之后,很快就成为关系数据库的标准语言。在过去的几十年里,SQL显著增长,从数据分析师和数据科学家到开发人员和数据库管理员,许多人都需要熟悉SQL的语法和使用。虽然理解SQL可能很复杂,但幸运的是,有许多书籍可以帮助你快速了解SQL。 虽然许多参考指南...[2019/3/8]
psql 关于主键自增的问题
在psql中往往我们需要设置一个自增的主键id字段,psql中不像SQL Server那样点选 打钩傻瓜式就能设置好的,是需要创建序列的:CREATE SEQUENCE,关键字SEQUENCE。
我们先看看创建过后的结果:
(用的Navicat工具)
我们可以看到设置自增后字段默认:n...[2019/3/8]
图解SQL语句里的各种JOIN查询 瞬间秒懂
从业以来主要在做客户端,用到的数据库都是表结构比较简单的 SQLite,以我那还给老师一大半的 SQL 水平倒也能对付。现在偶尔需要到后台的 SQL Server 里追查一些数据问题,就显得有点捉襟见肘了,特别是各种 JOIN,有时候傻傻分不清楚,于是索性弄明白并做个记录。前言 在各种问答社区里谈...[2019/1/30]
数据库面试基础知识整理
存储过程
1、什么是存储过程
存储过程是一个预编译的SQL语句;是由SQL语句组成的代码块,允许模块化的设计;只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。
2、存储过程的调用
(1)可以用一个命令对象来调用存储过程;
(2)...[2019/1/28]
SQL中过滤条件放on和where中的区别详解
前言
今天接到蚂蚁金服的电面,问了sql中过滤条件放在on和where中的区别,当时满脑子是inner join,觉得没区别啊。后来才想起来,连接查询除了inner join还有right join,left join。汗呐,当时还是太紧张了。这里做一下记录吧。
join过程可以这样理解:...[2019/1/28]
阿里开发强制要求的11条索引创建规范,提高性能阿里开发强制要求的11条索引创建规范,提高性能
1. 【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。 说明:不要以为唯一索引影响了insert速度,这个速度损耗可以忽略,但提高查找速度是明显的;另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生。 2. 【强制】超过三个表禁止...[2019/1/22]
SQL优化小技巧
我们要做到不但会写SQL,还要做到写出性能优良的SQL语句。
1.使用表的别名(Alias): 当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上。这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误。
2.表的索引:
索引是表的一...[2019/1/10]
【HANA系列】SAP HANA XS使用Data Services查询CDS实体【一】【HANA系列】SAP HANA XS使用Data Services查询CDS实体【一】
公众号:SAP Technical
本文作者:matinal
原文出处:http: www.cnblogs.com/SAPmatinal/
原文链接:【HANA系列】SAP HANA XS使用Data Services查询CDS实体【一】
前言部分
使用SAP HANA...[2018/12/21]
关于SQL优化这些你了解吗?关于SQL优化这些你了解吗?
背景 在当今这个互联网的时代无非要解决两大难题,其一是信息安全,其二就是数据的存储。而信息安全则是在数据存储的基础之上。一个公司从刚开始成立到发展成一个有上百人甚至上千人团队的时候,公司的业务量是呈上升趋势,客户及用户也会越来越多;之前设计的表结构可能会显得不合理,表与表之间的联系没有一个稳定的业...[2018/12/14]
图解SQL的JOIN
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章通过 文氏图 Venn diagrams 解释了SQL的Join。我觉...[2018/11/29]
当我们输入一条SQL查询语句时,发生了什么?
我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时: mysql> sel...[2018/11/27]
SQL优化:应避免使用 in和 not in
为什么: IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢? 1、效率低 项目中遇到这么个情况: t1表 和 t2表 都是150w条数据,600M的样子,都不算大。 但是这样一句查询 直接就把我跑傻了。。。十几秒,检查了一下 phone在两个表都建了索引,字段类型也是一样的。原来n...[2018/11/19]
SQL这样干,你就是给自己刨坑
SQL是作为一个程序员接触得非常多的一种语言,但是,很多时候,我们会发现,有些SQL的执行效率异常的差,造成了数据库的负担。我们通过分析这些有问题的SQL,就可以发现很多我们平时在写SQL的时候忽略的问题。 今天,我们就来讲一下这些需要改掉的坏习惯。 尽量少用负向条件查询 假设我们有一个Order...[2018/11/14]
HIVE中IN的坑
问题:为什么HIVE中用了 NOT IN,结果集没了?
注:这个是原创,转载请注明,谢谢! 直接进实验室>>
> select * from a; OK 1 a1 2 a2 3 a3 Time taken: 0.063 seconds, Fetched: 3 ...[2018/11/7]
SQL语句中不同的连接JOIN及join的用法
为了从两个表中获取数据,我们有时会用JOIN将两个表连接起来。通常有以下几种连接方式:
JOIN or INNER JOIN(内连接) : 这两个是相同的,要求两边表同时有对应的数据,返回行,任何一边缺失数据就不显示。
LEFT JOIN(左外连接):即使右边的表中...[2018/10/26]
PGSQL-通过SQL语句来计算两个日期相差的天数
这是本人第一次写的~我在某次需求中遇到一个问题,如何在SQL语句中计算出两个日期的天数,然后用那个结果来进行数据的筛选呢?通过网上查阅了资料发现 date_part('day', cast(time1 as TIMESTAMP)- cast(time2 as TIME...[2018/10/25]
如何利用分析函数改写范围判断自关联查询详解
前言 最近碰到一个单条SQL运行效率不佳导致数据库整体运行负载较高的问题。 分析、定位数据库的主要负载是这条语句引起的过程相对简单,通过AWR报告就可以比较容易的完成定位,这里就不赘述了。 现在直接看一下这个导致性能问题的SQL语句,其对应的SQL REPORT统计如下: Stat NameSta...[2018/10/15]
sql developer以字段来删除大量数据sql developer以字段来删除大量数据
今天碰到一个问题,就是删除数据库数据,要删除了有1000一千条左右的数据,总共数据大概有30万条左右,但是如何删除呢, 我首先想到的是找数据的共性,因为这些数据日期都是3月份的,30万条数据时间段不相同,我就已时间为条件来删除, 用到的语法是,找包含2018年3月为条件来删除。月份的字段是 pub...[2018/9/25]