小技巧:

min/max优化 在表中,一般都是经过优化的. 如下地区表

id

area

pid

1

中国

0

2

北京

1

...

3115

3113

我们查min(id), id是主键,查Min(id)非常快.

但是,pid上没有索引, 现在要求查询3113地区的min(id);

select  min(id)  from  it_area  where  pid=3113;//全表扫描,找出所有pid=3113的,然后求出最小的id。

试想 id是有顺序的,(默认索引是升续排列), 因此,如果我们沿着id的索引方向走,

那么  第1个 pid=3113的索引结点,他的id就正好是最小的id,强制使用主键索引。

select  id  from it_area use index(primary) where pid=3113 limit 1;  //查询出来的结果是有序的,因为索引是有序的,而又沿着索引找,扫描到了之后取一行就可以了。

|       12 | 0.00128100 | select min(id) from it_area where pid=69                         |

|       13 | 0.00017000 | select id from it_area  use index(primary) where pid=69  limit 1 |

改进后的速度虽然快,但语义已经非常不清晰,不建议这么做,仅仅是实验目的.

count() 优化

误区:

1:myisam的count()非常快

答: 是比较快,.但仅限于查询表的”所有行”比较快, 因为Myisam对总行数进行了存储.一旦有条件的查询, 速度就不再快了.尤其是where条件的列上没有索引.

2: 假如,id<100的商家都是我们内部测试的,我们想查查真实的商家有多少?

select count(*) from lx_com where id>=100;  (1000多万行用了6.X秒,就不快了)

小技巧:

select count(*) from lx_com; 快

select count(*) from lx_com where id<100; 快

select count(*) frol lx_com -select count(*) from lx_com where id<100; 快

select (select count(*) from emp) - (select count(*) from emp where empno<100)

3: group by

注意:

1:分组用于统计,而不用于筛选数据.

比如: 统计平均分,最高分,适合, 但用于筛选重复数据,则不适合.

以及用索引来避免临时表和文件排序

2:  以A,B表连接为例 ,主要查询A表的列,

那么 group by ,order by 的列尽量相同,而且列应该显示声明为A的列

4: union优化

注意: union all 不过滤 效率提高,如非必须,请用union all

因为 union去重的代价非常高, 放在程序里去重.

最新文章

  1. 华为oj 购物单
  2. JAVA实现复制文件夹
  3. webrtc初识
  4. Application Pool
  5. 怎么用navicat自动备份mysql数据库
  6. Oracle数据库——用户、方案的创建与管理
  7. PHP自定义日期英文格式 Feb 11,2015
  8. cout internal
  9. POJ 1781 In Danger Joseph环 位运算解法
  10. 一步到位Linux中安装配置MySQL及补坑
  11. JavaScript原型(第五天)
  12. nginx stream 日志设置(Version 1.9.0 +)
  13. [转帖] BIO与NIO、AIO的区别
  14. Java如何进行Base64的编码(Encode)与解码(Decode)?
  15. JS实现下拉单的二级联动
  16. 固态硬盘SSD,机械硬盘HDD,4K速度对比。
  17. 使用 CasperJS 构建 Web 爬虫
  18. 【转】dijkstra算法
  19. sublime 3插件安装记录
  20. es6的一些基本语法

热门文章

  1. 【DFS序+单点修改区间求和】POJ 3321 Apple Tree
  2. 16.1116 NOIP 考前模拟(信心题)
  3. 标准C程序设计七---15
  4. 洛谷——P3576 [POI2014]MRO-Ant colony
  5. 【深入Java虚拟机】之三:类初始化
  6. IT部门的KPI该如何制定?
  7. 1054. 求平均值 (20)-PAT乙级真题
  8. elasticsearch学习网站
  9. Tomcat载入两次问题
  10. IE8.0登录Oracle EBS后报Oracle error 1403错