数据库优化策略+SQL文复习

原创 2016年05月31日 00:02:42

数据库查询优化的思路:
1:优化sql
2:添加索引
3:加缓存,如memcached
4:主从复制或主主复制,读写分离
5:分区
6:垂直切分
垂直切分就是要把表按模块划分到不同数据库中,这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网站不断丰富和壮大的时候,也会变成多个子系统来支撑,这时就有按模块和功能把表划分出来的需求。
7:水平切分
上面谈到垂直切分只是把表按模块划分到不同数据库,但没有解决单表大数据量的问题,而水平切分就是要把一个表按照某种规则把数据划分到不同表或数据库里。例如像计费系统,通过按时间来划分表就比较合适,因为系统都是处理某一时间段的数据。而像SaaS应用,通过按用户维度来划分数据比较合适,因为用户与用户之间的隔离的,一般不存在处理多个用户数据的情况

接下来复习几个简单的SQL文
1:count(expr)
count(column) 和 count(*) 是一个完全不一样的操作,所代表的意义也完全不一样
count(column) 是表示结果集中有多少个column字段不为空的记录
count(*) 是表示整个结果集有多少条记录

2:字符串拼接
(1)SELECT * FROM book WHERE isbn = ‘1464540496384’
(2)SELECT * FROM book WHERE isbn = CONCAT(‘146454049638’,’4’)
(3)SELECT * FROM book WHERE isbn = (‘146454049638’+’4’)
第一个sql跟第二个sql是相同的效果。

SELECT (‘146454049638’+’4’) from DUAL //146454049642

2:当只要一行数据时使用limit 1
MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查找下一条符合记录的数据。
SELECT * FROM book WHERE isbn = ‘1464540496384’; //0.060s
SELECT * FROM book WHERE isbn = ‘1464540496384’ limit 1; //0.024s

3、避免SELECT *
从数据库里读出越多的数据,那么查询就会变得越慢。并且,如果你的数据库服务器和WEB服务器是两台独立的服务器的话,这还会增加网络传输的负载。所以,你应该养成一个需要什么就取什么的好的习惯。

SELECT id,Name from book; //0.090s
SELECT * from book; //0.145s

4.批量插入效率高于逐条插入
insert into book (NAME,AUTHOR,CATEGORY_ID,ISBN) VALUES(‘java’,’tom’,2,’123456’); //0.074
insert into book (NAME,AUTHOR,CATEGORY_ID,ISBN) VALUES(‘javascript’,’lili’,2,’7891011’); //0.076
insert into book (NAME,AUTHOR,CATEGORY_ID,ISBN) VALUES(‘c++’,’lulu’,4,’789234’); //0.067

insert into book (NAME,AUTHOR,CATEGORY_ID,ISBN) VALUES(‘java’,’tom’,2,’123456’),
(‘javascript’,’lili’,2,’7891011’),
(‘c++’,’lulu’,4,’789234’); //0.065

版权声明:本文为博主原创文章,未经博主允许不得转载。

数据库 SQL 查询技术的优化策略

[摘要]在数据库系统中,数据查询是一项及其重要的操作。影响数据库系统性能的因素有很多,其中运用SQL语句的优劣对数据库系统的性能有直接的影响。优化的SQL语句能够提高数据库系统的性能,从而实现高效的查...

SQL server数据库安全策略

SQL Server 2000[1]的安全配置在进行SQL Server 2000数据库的安全配置之前,首先必须对操作系统进行安全配置,保证操作系统处于安全状态。然后对要使用的操作数据库软件(程序)进...

SQL语法优化策略

  • 2014年08月21日 11:15
  • 40KB
  • 下载

Oracle数据库系统性能优化策略

  • 2014年12月19日 14:09
  • 4KB
  • 下载

使用SQL Server DMVs优化索引策略

使用SQL Server DMVs优化索引策略   SQL Server索引的目标是高效,太多太少都是走极端。一旦确定要创建索引,你必须要确保的是负载必须以最小的I/O开销来读取数据。   聚集索引与...

数据库设计的优化策略.pdf

  • 2012年05月27日 06:42
  • 3.65MB
  • 下载

Spark-SQL介绍及优化策略

目前我们在使用SQL引擎时,月级的、天级的、小时级的查询都转到了Spark-SQL,速度及稳定性都有较好的表现。以下对Spark-SQL介绍及优化策略进行总结:...

优化sql语句的策略

本文是对近期sql学习的整理感悟。 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或操作符...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库优化策略+SQL文复习
举报原因:
原因补充:

(最多只允许输入30个字)