数据库优化策略+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

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

数据库性能优化策略

有数据表明:用户可以承受的最大等待时间为8秒。 之前曾见过某个产品的一个列表页,40秒左右才能加载出来,几乎没有进行任何优化措施。 没有索引,没有缓存机制,没有进行sql优化(sql语句很长,并且...
  • u013628152
  • u013628152
  • 2016年07月05日 22:24
  • 2398

数据库的优化-应付面试

在数据仓库项目中,由于数据规模庞大,提高数据的查询效率是永恒的主题,常见的优化手段有: 1、 硬件优化,提高机器性能,增加硬件等; 2、 优化查询语句,将限定性强的where条件放前,用exi...
  • m8396017
  • m8396017
  • 2016年05月08日 23:57
  • 15540

数据库优化策略小结

数据类型的优化(1)MySQL数据类型 整数类型: TinyInt,存储空间8, 字节长度1; SmallInt, 存储空间16, 字节长度2; MediumInt,存储空间24, 字节长度3; I...
  • liu_wenbin
  • liu_wenbin
  • 2017年08月05日 19:51
  • 161

关系数据库的查询优化策略----总结了一些查询优化的方法,希望可以对大家有所帮助(原创)

1         引言随着计算机应用技术的不断普及和发展,数据库系统正越来越多的走进人们的日常生活。在要求查询结果正确无误的同时,人们越来越关心查询的效率问题。影响查询效率的因素很多,诸如处理器的速...
  • ttfwind
  • ttfwind
  • 2005年10月11日 17:19
  • 7996

数据库优化操作及方案

MySQL数据量大时,优化可以进行的操作:MySQL分库分表,MySQL缓存,MySQL索引,MySQL优化查询语句? 数据库优化方案:缓存;数据库表的大字段剥离;恰当的使用索引;表库的拆分;字段冗余...
  • ShareUs
  • ShareUs
  • 2017年05月12日 12:58
  • 603

数据库sql常见优化方案

为什么要优化:      随着实际项目的启动,数据库经过一段时间的运行,最初的数据库设置,会与实际数据库运行性能 会有一些差异,这时我们就需要做一个优化调整。 数据库优化这个课题较大,可分为四大类...
  • miachen520
  • miachen520
  • 2016年08月24日 14:54
  • 1626

SQL复习大全

SQL复习大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明...
  • knockheart
  • knockheart
  • 2013年12月18日 10:05
  • 1442

Java复习之策略设计模式

这篇博客主要是学习Java中的策略设计模式。
  • BeMoreQuiet
  • BeMoreQuiet
  • 2017年02月11日 14:12
  • 188

数据库优化面试题

优化1——数据库优化面试题 1.实践中如何优化MySQL 1) SQL语句及索引的优化 2) 数据库表结构的优化...
  • a724888
  • a724888
  • 2017年03月08日 19:32
  • 9653

数据库SQL优化大总结1之- 百万级数据库优化方案

转自:https://mp.weixin.qq.com/s?__biz=MzIxMjg4NDU1NA==&mid=2247483684&idx=1&sn=f5abc60e696b2063e43cd9c...
  • wuhuagu_wuhuaguo
  • wuhuagu_wuhuaguo
  • 2017年06月06日 09:55
  • 2440
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库优化策略+SQL文复习
举报原因:
原因补充:

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