MYSQL索引实例
来源:互联网 发布:php购物网站制作 编辑:程序博客网 时间:2024/05/21 10:30
转自:http://www.phpobject.net/blog/read.php?131
MYSQL描述:
一个文章库,里面有两个表:category和article。category里面有10条分类数据。article 里面有20万条。article里面有一个"article_category"字段是与category里的"category_id"字段相对应的。 article表里面已经把 article_category字义为了索引。数据库大小为1.3G。
问题描述:
执行一个很普通的查询: SELECT * FROM `article` WHERE article_category=11 ORDER BY article_id DESC LIMIT 5 。执行时间大约要5秒左右
解决方案:
建一个索引:create index idx_u on article (article_category,article_id);
SELECT * FROM `article` WHERE article_category=11 ORDER BY article_id DESC LIMIT 5 减少到0.0027秒
继续问题:
SELECT * FROM `article` WHERE article_category IN (2,3) ORDER BY article_id DESC LIMIT 5 执行时间要11.2850秒。
使用OR:
select * from article
where article_category=2
or article_category=3
order by article_id desc
limit 5
执行时间:11.0777
解决方案:避免使用in 或者 or (or会导致扫表),使用union all
使用UNION ALL:
(select * from article where article_category=2 order by article_id desc limit 5)
UNION ALL (select * from article where article_category=3 order by article_id desc limit 5)
ORDER BY article_id desc
limit 5
执行时间:0.0261
MYSQL描述:
一个文章库,里面有两个表:category和article。category里面有10条分类数据。article 里面有20万条。article里面有一个"article_category"字段是与category里的"category_id"字段相对应的。 article表里面已经把 article_category字义为了索引。数据库大小为1.3G。
问题描述:
执行一个很普通的查询: SELECT * FROM `article` WHERE article_category=11 ORDER BY article_id DESC LIMIT 5 。执行时间大约要5秒左右
解决方案:
建一个索引:create index idx_u on article (article_category,article_id);
SELECT * FROM `article` WHERE article_category=11 ORDER BY article_id DESC LIMIT 5 减少到0.0027秒
继续问题:
SELECT * FROM `article` WHERE article_category IN (2,3) ORDER BY article_id DESC LIMIT 5 执行时间要11.2850秒。
使用OR:
select * from article
where article_category=2
or article_category=3
order by article_id desc
limit 5
执行时间:11.0777
解决方案:避免使用in 或者 or (or会导致扫表),使用union all
使用UNION ALL:
(select * from article where article_category=2 order by article_id desc limit 5)
UNION ALL (select * from article where article_category=3 order by article_id desc limit 5)
ORDER BY article_id desc
limit 5
执行时间:0.0261
- MYSQL索引实例
- MySQL联合索引实例
- MySQL索引入门实例
- MYSQL索引实例
- 【转】MYSQL索引实例
- Mysql索引优化实例讲解
- MySQL 优化实例---添加索引
- Mysql普通索引创建实例
- MySQL索引用法实例分析
- MySQL索引优化实例说明
- mysql的索引与实例
- MySQL索引使用方法及实例学
- 一百万数据索引实例测试--mysql
- mysql联合索引经典实例与解析
- Mysql主键索引创建的实例
- 关于mysql索引覆盖的实例
- Mysql索引Cardinality属性实例探查
- mysql索引实例----第二章实战篇
- Squid中refresh_pattern选项的理解
- asp:DropDownList 控件 设置AutoPostBack=true 但是OnSelectedIndexChanged仍不触发的问题。
- Tomcat6.x的Console(如何查看部署的webapp的输出)
- Zmanda实现图形化管理MySQL备份
- Itext 生成 pdf文件使用方法:
- MYSQL索引实例
- 访问IIS的aspx网页 出现如下提示: 用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库(如 IIS://servername/W3SVC)的读访问权
- 在OpenSuse10.2中配置电信互联星空帐号实现dsl上网,终于成功。
- 同事开发的高效的开源分布式文件系统: FastDFS
- 用java.util.zip实现对数据的压缩
- JavaScript中的"闭包"
- 预编译Web站点(优点: 源文件不必付知道目标web站点上 。网站管理员 无法修改源文件)
- 聊聊Zend Framework中Front Controller的Singleton实现
- 广告控件 AdRotator 所使用XML文件的格式示例(注意大小写 例如 Ad 写为ad会导致无效)