个人日常优化SQL语句的总结笔记
目前 DB 承受 日平均 500W PV 左右的站点,数据文件大小在20G左右,表数据量 在 50 - 500 W 左右
仅供参考:
1 . 查询的数据行分布情况,决定索引是否用得上,如果查询的数据行在数据表中分布均匀,且所占比重较大,能用上索引;反之,用不上索引
2 . select 的字段数目,特别是 长度较大的字段,对 语句的执行时间影响较大
3 . 语句中有 distinct 时,再在 where 语句中限制日期范围的话,反而会影响性能,无 distinct 时,执行情况是一样的
4 . distinct 一般占到总语句开销的 65 %左右
5 . newid 则视结果集而定,结果集越大,newid 所占语句的总开销比例也就越大
6 . group by 归总时,语句开销和Top 无关,所以,尽量少在大表中group by。
7 . group by 的字段越多,开销越大,且这些字段是用不上索引的,但是 where 中的条件是可以用上索引的。但是不可估量的是,用上索引也不一定能减少开销
8 . 非聚集索引,在 order by 中是用不上的
9 . Row_Number 在IO操作上不是十分的出色,但是在占用CPU资源上,却做的非常好。总体上,还是相当不错的,执行时间较短。
10. 在部分情况下,如果 Or 用好,是和 In 的效率一样的
11. 查询条件过多也会影响性能,且较严重
12. 查询中,UserName='ssssss' 的性能往往会比 UserID=123456 的性能要好
13 . 当语句中出现 in(select id from table1) 时,in里面的表达式一定要加top ,比如 select top 10 * from tables where id in(select top 100 id from table2),特别是在 in 里面取出来的数据比较多,外表又很大的情况
14 . 聚集索引一定要建在在表中分布均匀的字段、增减规律的字段上,比如日期,而尽量避免将聚集索引建立在UserID等字段上
15 . 当 where 中有 like 条件匹配时,where 中的非聚集索引就会失效,引起全表扫描,但是聚集索引是可以用到的
16. 如过允许,请将 可能 引起全表扫表的 SQL 语句,加上 未提交读 的事物隔离级别设置,即 no lock
分享到:
相关推荐
SQL语句通常由一系列关键字组成,比如`SELECT`、`FROM`、`WHERE`、`ORDER BY`等。基本查询语法通常为: ```sql SELECT column1, column2, ... FROM table_name WHERE condition; ``` 其中,`SELECT`用来指定要查询的...
### SQL语句整理笔记知识点详解 #### 数据库操作 1. **创建数据库**: `CREATE DATABASE Country ON (name='Country', filename='D:\Country.mdf', size=5mb, maxsize=100mb, filegrowth=10%) LOG ON (name='...
以下是从“SQL语句笔记”中提炼的关键知识点: - **SELECT语句**:最常用的SQL语句之一,用于从数据库中检索数据。 - `SELECT * FROM table WHERE a = ''`:这表示从`table`中选取所有列,但只返回那些`a`列值为空...
sql语句中的精华,简单明了,易于学习,对于自学者非常有好处,值得去下载看看
10. **SQL语句**:SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。它包括数据查询、数据插入、数据更新和数据删除等操作。在Java中,可以通过JDBC(Java Database Connectivity)API来连接...
- **问题描述**:复杂的SQL语句(尤其是多层嵌套的子查询)可能导致性能下降。 - **解决方案**: - 将复杂操作分解为多个步骤,先创建临时表存储中间结果,再进行后续操作。 - 使用 `UNION ALL` 替代 `UNION`,...
SQL语句练习笔记文件通常包含一系列示例和练习,旨在帮助用户提升SQL技能。这些文件可能包括基本查询、复杂查询、数据操作、数据库设计以及优化技巧等多个方面。下面我们将详细探讨这些知识点。 1. **SQL基础**: ...
sql语句大全
自己整理的,有可能不对。如果不对请指出来,谢谢
### SQL语句帮助手册笔记 #### 一、SQL基础概念与用法 ##### 1. 数据统计函数 在SQL查询中,经常会用到各种数据统计函数来处理数据集中的数值,例如: - `AVG()`:计算平均值。 - `COUNT()`:计算行数。 - `MAX()`...
首先,"SQL语句优化笔记.doc"可能涵盖了基本的SQL优化策略。这可能包括避免全表扫描,通过使用索引来提高查询速度,以及选择正确的JOIN类型。索引是提升查询效率的重要手段,它创建了一个指向数据的快速查找路径。而...
在本压缩包“day01-sql安装与SQL语句-笔记.zip”中,我们可以预见到包含的内容主要是关于SQL(Structured Query Language)的基础知识,包括SQL的安装过程以及基本的SQL语句。SQL是用于管理和处理关系数据库的强大...
这篇笔记主要探讨的是SQL Server 2005中的常用函数以及一些经典的SQL语句,这对于数据库管理员和开发人员来说是非常有价值的知识。 一、SQL Server 2005中的常用函数 1. **聚合函数**:如SUM, COUNT, AVG, MAX, ...
SQL语句笔记.md
【描述】中提到,这些SQL语句是项目笔记的一部分,可以在CSDN(Chinese Software Developer Network)的特定专栏找到,链接为。这个专栏可能是开发者分享该项目数据库设计、维护或优化经验的地方,对于学习和理解该...
这些基本的SQL语句构成了数据库操作的基础,通过它们可以进行数据查询、更新、插入和删除,从而有效地管理和维护数据库系统。在实际应用中,还需要结合事务处理、索引、视图等高级特性,以提高查询性能和数据安全性...
【第17章:Java数据库编程】_SQL语法基础笔记.pdf
### MySQL数据库SQL语句增删改查笔记 #### 一、插入数据(Insert) 在MySQL中,`INSERT INTO`语句用于向表中插入新记录。语法格式为: ```sql INSERT INTO 表名 (列1, 列2, ..., 列n) VALUES (值1, 值2, ..., 值n...
ArcGIS 学习笔记中的 SQL 语句是学习 ArcGIS 中的重要组成部分。本文将详细介绍 SQL 语句在 ArcGIS 中的应用,包括 SQL 基础、基本语句、连接运算符、高级查询运算符等。 SQL 基础 SQL(Structured Query Language...