- 浏览: 650015 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (144)
- grails (2)
- jboss (2)
- html5 (2)
- maven (9)
- mysql (9)
- android (13)
- java (39)
- javascript (16)
- flex (3)
- oracle (7)
- ubuntu (5)
- tomcat (1)
- ssh (1)
- iphone (0)
- eclipse (5)
- jquery (4)
- web (7)
- ibatis (7)
- dwr (5)
- hibernate (1)
- ws (0)
- freemarker (4)
- css (2)
- webservice (1)
- html (2)
- jsp (4)
- os (5)
- xp (4)
- cpu (2)
- sql (5)
- db (2)
- 数据库 (5)
- log4j.properties (1)
- date (1)
- map (1)
- log4j (1)
- java spring dwr (1)
- (2)
- xml (4)
- ajax (3)
- servlet (1)
- xmlhttp (1)
- linux (2)
- socket (2)
- java,多线程 (1)
- android,java,os (1)
- Android,java (2)
- spring (1)
- java,dwr (1)
- js (2)
- 回调 (1)
- java,event (1)
- java ,注解, (1)
- avd (1)
- sdk (1)
- maven,java,xml,nexus (1)
- java,maven,nexus (1)
- Maven,Android,i-jetty,java (1)
- web js 参数 (1)
- java mac os (1)
- mac os (2)
- mac (1)
- 环境 (1)
- 搭建 (1)
- adt (1)
- adb (1)
- iOS (1)
最新评论
-
lhs472194266:
可以 X-Forwarded-For 可以轻易的被伪造
Java获取IP地址:request.getRemoteAddr()警惕 -
Nabulio:
图片全部加载不出来
maven 建立本地仓库 -
wahaha603:
...
Properties的相对路径以及文件的读取操作 -
一别梦心:
图片没了,楼主补充一下吧
maven 建立本地仓库 -
a_jie1981:
a_jie1981 写道试试http://www.findma ...
maven 建立本地仓库
使用UNION ALL代替OR,这不是绝对的。具体什么时候选择谁,需要看测试数据。
一个文章库,里面有两个表: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
发表评论
-
android wifi 无线调试
2012-06-17 17:24 4401数据线丢了,不想花钱去买,在网上看了看,android手机 ... -
adb server is out of date. killing...
2012-06-17 17:20 8025在cmd窗口输入adb shell 或 adb connect ... -
JAVA 回调
2012-06-12 11:35 917熟悉MS-Windows和X Windows ... -
Class is not accessible due to restriction on required library
2012-06-03 12:13 989How to solve This error messag ... -
Column 'id' in field list is ambiguous
2012-04-23 18:20 7645Column 'id' in field list is am ... -
java.util.ConcurrentModificationException
2012-04-01 16:24 0工作中碰到个ConcurrentModificationExc ... -
在Spring框架下获取Bean的方式总结
2012-04-01 16:23 0众所周知,Spring框架将D ... -
普通Java类获取Spring的Bean的方法
2012-04-01 16:18 1307在SSH集成的前提下。某 ... -
android 调用系统图片浏览器并返回图片路径
2012-04-01 15:56 2513调用系统图片浏览器的方法如下: Intent intent ... -
网络编程中Nagle算法和Delayed ACK的测试
2012-03-31 16:43 1408Nagle算法 的立意是良 ... -
ibatis的remapResults属性合理运用
2012-03-31 15:51 1473Proper Usage of remapResults=&q ... -
response.setHeader()下载中文文件名的设置
2012-03-31 15:44 103921. HTTP消息头 (1)通用信息头 即能用于请求消息中 ... -
判断当前操作系统是不是window
2012-03-19 09:08 1586/** * 判断当前操作系统是不是window * * ... -
freemarker数字格式化
2012-03-17 16:53 3040freemarker在解析数据格式的时候,自动默认将数字按3为 ... -
数据库时客户端提示 Cannot proceed because system tables used by Event Scheduler
2012-02-29 21:13 9866在打开数据库或者用数据库管理工具(Navicat)时客户端提示 ... -
Socket用法详解
2012-02-22 16:49 1124一、构造Socket Socket的构造方法有以下几种重 ... -
在任意位置获取应用程序Context
2012-02-16 10:53 1020Android程序中访问资源时需要提供Context,一般来说 ... -
JAVA进程CPU占用率分析方法
2012-02-13 17:05 35711: 首先把JDK Linux版本上传到服务器上.2: 使 ... -
dwr同步问题
2012-02-06 22:58 859想要异步的时候,想要同步的时候同步,在不同的情况下我们有不同的 ... -
DWR 原理简单介绍
2012-02-06 15:07 3678使用DWR已经好长一段时 ...
相关推荐
在MySQL数据库中,进行数据查询时,我们经常需要使用到`OR`、`IN`和`UNION ALL`这些操作符。这些操作符在不同的场景下有不同的效率表现,但并不是像网络上普遍认为的那样,`UNION ALL`总是比`OR`和`IN`更快。实际上...
- **index_subquery**:用于替换特定形式的IN子查询,但适用于非唯一索引的情况。 - **range**:检索给定范围内的行,使用索引选择行。 - **index**:类似于ALL,但只扫描索引树。 - **ALL**:全表扫描,性能...
在MySQL中,优化是指通过合理地配置资源和调整系统参数,使得数据库能够更快地响应查询请求,同时尽可能减少资源消耗。优化的目标在于减少系统的瓶颈,降低资源占用率,并提高系统的整体响应速度。 #### 二、优化的...
- **unique_subquery**:用于优化 IN 子查询,替换为更高效的索引查找函数。 - **index_subquery**:类似 unique_subquery,但适用于非唯一索引的 IN 子查询。 - **range**:仅检索给定范围内的行。 - **index**...
- **理解优化的概念:** 首先明确什么是优化,即如何通过合理地分配资源和调整系统参数来提升MySQL的运行速度,同时减少资源消耗。 - **掌握查询优化方法:** 学习并运用各种技术来提高查询效率,确保数据的快速检索...
- **解决方案**:使用 `UNION ALL` 替换 `OR`,可以更高效地处理多个独立的查询。 **5. 避免使用 `LIKE` 开头的通配符** - **问题分析**:使用 `%` 开头的 `LIKE` 语句(例如 `LIKE '%abc%'`)通常会导致全表...
4. **避免 `OR` 连接条件**:使用 `UNION ALL` 分开多个查询以保持索引利用率。 5. **谨慎使用 `IN` 和 `NOT IN`**:如果值是连续的,考虑使用 `BETWEEN`。对于大范围的 `IN` 查询,考虑转换为 `JOIN` 或 `EXISTS`...
union 和 union all 的差异主要是前者需要将结果集合并后再进行唯一性过滤操作,这就会涉及到排序,增加大量的 CPU 运算,加大资源消耗及延迟。union all 的前提条件是两个结果集没有重复数据。 8. 不使用 ORDER BY...
可以使用`UNION ALL`或多个独立查询结合`IN`来替代。 5. **谨慎使用IN和NOT IN**:对于连续数值,使用`BETWEEN`比`IN`更高效。同时,`IN`可能导致全表扫描,应尽量避免。 6. **避免模糊匹配%前缀**:`LIKE '%李%'`...
可以尝试用 UNION ALL 替换 OR 来提高查询效率,例如:`SELECT id FROM A WHERE num = 10 UNION ALL SELECT id FROM A WHERE num = 20`。 ### 7. IN 或 NOT IN 优化 - **IN 和 NOT IN** IN 和 NOT IN 也可能导致...
**标题:** 应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,可以使用UNION合并查询:select id from t where num = 10 union all select id from t where num = 20。...
2. 用 IN 来替换 OR 低效查询:`SELECT * FROM t WHERE id = 10 OR id = 20 OR id = 30;` 高效查询:`SELECT * FROM t WHERE id IN (10,20,30);` MySQL 对于 IN 做了相应的优化,即将 IN 中的常量全部存储在一个...
20. **避免在WHERE子句中使用OR操作**:OR可能导致MySQL无法使用索引,可尝试使用UNION ALL替换。 21. **定期检查和修复表**:使用`REPAIR TABLE`检查和修复可能出现的问题,如损坏的索引或数据。 以上是21条针对...
4. **谨慎使用OR**:在where子句中使用OR会阻止索引的使用,可以考虑使用UNION ALL代替,分开执行多个查询。 5. **IN与NOT IN的使用**:尽量避免在where子句中大量使用IN,尤其是与非索引字段结合时。对于连续数值...
6. **避免在WHERE子句中使用OR**:OR操作会导致索引失效,可以考虑使用UNION ALL或者重写查询结构。 7. **使用EXPLAIN分析查询计划**:通过EXPLAIN可以查看MySQL执行查询的详细步骤,帮助识别潜在的性能瓶颈,如全...
- 避免在`WHERE`子句中使用`OR`,可以考虑使用`UNION ALL`替代。 - 使用`JOIN`时,确保关联条件是索引,且数据量较小的一方作为驱动表。 3. **SQL语句重构**: - 避免在循环中执行单条SQL,改为一次性处理多条...
根据所提供的文件内容,以下是...这些知识点覆盖了MySQL的安装配置、基本概念、数据类型、表操作、索引、视图、触发器、查询、数据操作、运算符、函数以及存储过程和函数等方面,适合初学者学习和掌握MySQL的基本使用。
同时,避免在`WHERE`子句中使用`OR`,而是用`UNION ALL`来组合多个`SELECT`语句。 对于复合索引,确保查询条件包含索引的第一个字段,以保证索引的有效利用。索引的顺序应与查询条件匹配。小规模的表和不常使用的列...
在MySQL中,`INNER JOIN`和`CROSS JOIN`被视为等价,但通常推荐使用`INNER JOIN`以明确表示连接意图。连接条件通常在`ON`子句中指定。 3. **外连接(Outer Join)**:外连接分为左外连接(LEFT JOIN)和右外连接...
通过这些详细的解释,我们可以更深入地理解`StringBuilder`与`StringBuffer`的选择逻辑、MySQL数据库优化的最佳实践以及如何利用`EXPLAIN`工具来分析和优化查询性能。这对于提高应用程序的整体性能至关重要。