一、SQLAdvisor简介 SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评广泛应用,包 ...
分类:
数据库 时间:
2017-03-13 13:01:39
阅读次数:
532
对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描: · 使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。 · 对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索 ...
分类:
数据库 时间:
2017-02-28 15:10:11
阅读次数:
244
1、内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。 2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。 在 F ...
分类:
数据库 时间:
2017-02-25 21:34:40
阅读次数:
272
1、使用表的别名,把别名应用于每个column的前面,这样减少字段歧义和引起不必要的语法错误; 2、使用exist替换in,使用not exist替换not in,因为not in执行了一个内部的排序和合并,它对子查询的全表进行了遍历 3、使用索引提高效率 4、避免在索引上计算 5、用exist替换 ...
分类:
数据库 时间:
2017-02-20 00:48:51
阅读次数:
212
转载:http://wulijun.github.io/2012/08/24/mysql-sql-optimization.html 优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占 用的,减少 IO 次 ...
分类:
数据库 时间:
2017-02-17 09:53:09
阅读次数:
246
一.索引 索引是查询优化最有效和最常用的技术 索引是一个单独的、物理的数据库结构,它是指向表中某一列或若干列上的指针列表。 mysql中,一个表的物理存储由两部分组成,一部分用于存放表的数据,另一部分存放索引,当进行数据搜索时,mysql会首先搜索索引,从中找到所需数据的起始位置的指针,再直接通过指 ...
分类:
数据库 时间:
2017-02-16 23:53:14
阅读次数:
263
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手。 第一方面:开发速度的对比 就开发速度而言,Hibernate的 ...
分类:
Web程序 时间:
2017-02-10 18:06:35
阅读次数:
181
(转自http://www.cnblogs.com/qqzy168/archive/2013/08/02/3233817.html) 1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处, ...
分类:
数据库 时间:
2017-02-07 12:24:26
阅读次数:
206
(转自http://blog.csdn.net/sforiz/article/details/5345359) 我们要做到不但会写SQL,还要做到写出性能优良的SQL语句。(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,F ...
分类:
数据库 时间:
2017-02-07 11:59:20
阅读次数:
193
由于分库分表的原因,和开发规定了不能使用 表表JOIN 语句。因此,我们要将 JOIN 语句的转化成使用 IN 来做。如现在有 表 A(a_id, c_a)c_a有普通索引,表 B(b_id, c_a) 这两个表要关联, 应该转化为以下步骤处理: 先查询B中的 a_id 使用 IN 查询 A 表 场 ...
分类:
数据库 时间:
2017-01-24 17:25:13
阅读次数:
233