MySQL性能调优 – 使用更为快速的算法进行距离最近遇到了一个问题,通过不断的尝试最终将某句原本占据近1秒的查询优化到了0.01秒,效率提高了100倍.问题是这样的,有一张存放用户居住地点经纬度信息的MySQL数据表,表结构可以简化 为:id(int),longitude(long),latitu...
分类:
数据库 时间:
2015-07-01 14:07:01
阅读次数:
181
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系...
分类:
数据库 时间:
2015-07-01 13:40:56
阅读次数:
240
1、统一SQL语句的写法对于以下两句SQL语句,程序员认为是相同的,数据库查询优化器认为是不同的。
select*from dual select*From dual
其实就是大小写不同,查询分析器就认为是两句不同的SQL语句,必须进行两次解析。生成2个执行计划。所以作为程序员,应该保证相同的查询语句在任何地方都一致,多一个空格都不行!
2、使用“临时表”暂存中间结果
简化SQL语...
分类:
数据库 时间:
2015-06-30 16:31:10
阅读次数:
172
MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内...
分类:
数据库 时间:
2015-06-30 08:54:58
阅读次数:
224
索引是建立在表上的,本质上是通过索引直接定位表的物理元组,加速数据获取的方式,所以索引优化应该归属到物理查询优化阶段。
1. 如何利用索引
通常查询优化器所使用索引的原则如下:
● 索隐裂座位条件出现在WHERE、HAVING、ON 子句中,这样有利于索引过滤元组;
● 索引列是被链接的表对象的列且存在于连接条件中;
● 还有一些情况可以使用索引,如排序操作、在索引列上球MIN、MAX...
分类:
其他好文 时间:
2015-06-27 16:46:55
阅读次数:
115
一个zirancun 14万数据量,一个zirancuntd 19万数据,这两个zirancuntd.distid 与zirancun.id进行关联,查询zirancuntd.distid不存在与zirancun中1.SELECT id from zirancuntd where (select i...
分类:
数据库 时间:
2015-06-25 13:53:43
阅读次数:
148
欢迎来到性能调优培训的第4个月。这个月全是关于SQL Server里的统计信息,还有它们如何帮助查询优化器生成足够好的执行计划。统计信息主要是被查询优化器用来估计查询返回的行数。它只是个估计,没别的。统计信息概述SQL Server使用在统计信息对象里称作直方图(Histogram)的东西,它描述了...
分类:
其他好文 时间:
2015-06-25 10:16:33
阅读次数:
206
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:[sql]view plaincopyselectidfromtwherenumisnu...
分类:
其他好文 时间:
2015-06-24 18:11:53
阅读次数:
104
很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如:select * from table1 where name='zhangsan' and tID > 10000和执行:select * from table1 where...
分类:
数据库 时间:
2015-06-23 13:26:29
阅读次数:
154
前言 查询优化器使用统计信息来创建可提高查询性能的查询计划,对于大多数查询,查询优化器已经为高质量查询计划生成必要的统计信息,但是在少数情况下,您需要创建附加的统计信息或者修改查询设计以得到最佳结果。因此理解和合理使用统计信息是数据库优化的方式之一。 统计信息的分类 根据创建源的不同,统计信息分为两...
分类:
数据库 时间:
2015-06-19 23:05:46
阅读次数:
222