一个文章库,里面有两个表: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 union 放弃索引_MySQL索引优化和in or替换为union all相关推荐

  1. mysql 排序字段是否需要建索引_MySQL索引详解(优缺点,何时需要/不需要创建索引,索引及sql语句的优化)...

    一.什么是索引? 索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息. 二.索引的作用? 索引相当于图书上的目录,可以根据目录上的页码快速找到所需的内容,提高 ...

  2. mysql字段简索引_Mysql索引优化攻略(全)

    所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值来快速查找.而用的最多,并且是mysql默认的就是二叉树算法 BTREE, ...

  3. mysql带where的join加索引_MySQL索引分析和优化+JOIN的分类(转)

    join : 左右合併 inner join : 只顥示符合修件的資料列 (左右互相比對) left join : 顥示符合條件的右資料列及左邊不符合條件的資料列 (此時右邊的資料會以 NULL 顯示 ...

  4. mysql 大量数据 更改索引_Mysql索引数据结构详解与索引优化

    本篇文章主要学习了MySQL的索引的数据结构的认识,做一个大概的了解即可. 一.索引 在关系数据库中,索引是一种单独的.物理的对数据库表中一列或多列的值进行排序的一种存储数据结构,它是某个表中一列或若 ...

  5. mysql 重复率高字段 索引_MySQL性能优化(二)索引优化

    一.选择合适的列建立索引 1.在where从句,group by从句,order by从句,on从句中出现的列(select) 2.索引字段越小越好(表每页数据才会更多,IO效率会更高) 3.离散度大 ...

  6. mysql or 创建索引_Mysql索引优化

    1.单表索引优化 单表索引优化分析 创建表 建表 SQL CREATE TABLE IF NOT EXISTS article( id INT(10) UNSIGNED NOT NULL PRIMAR ...

  7. 手机号 mysql 索引_mysql索引以及优化

    :最左前缀原则中where字句有or出现还是会遍历全表 (1) 其实where条件的顺序不影响使用索引,比如三个字段添加联合索引t_user表联合索引(name, mobile, create_dat ...

  8. mysql double 索引_MySQL架构优化实战系列1:数据类型与索引调优全解析

    一.数据类型优化 数据类型 整数 数字类型:整数和实数 tinyint(8).smallint(16).mediuint(24).int(32).bigint(64) 数字表示对应最大存储位数,如 t ...

  9. mysql order by 多个字段 索引_mysql 索引优化order by 语句

    MySql创建索引时支持ASC或DESC排序. 下面举例 创建表时同时创建索引降序排序(sname 字段上普通索引降序) create table tbl1 ( id int unique, snam ...

  10. mysql 织梦 索引_Mysql索引详解 建立索引的优势劣势以及索引规范

    索引是什么 索引(index)是帮助MySQL高效获取数据的数据结构 如果没有特别指明,都是指的是B树索引(多路搜索树,并不一定是二叉树)结构组织的索引 建立索引的优势和劣势 优势 提高数据检索的效率 ...

最新文章

  1. dhcp动态主机配置协议
  2. stm32F042 (二) 按键触发中断
  3. 打破情感分类准确率80分天花板!更充分的知识图谱结合范式
  4. java中全大写字符_Java 大写字符串中的字符
  5. 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “pch.h“”?
  6. 一个表单同时向两个页面传值
  7. SpringBoot入门到精通_第3篇 _应用组件分析
  8. android iOS 都精通,Android IOS开发要理解何为面向对象的思维
  9. 动态规划在求解背包问题中的应用(JAVA)--回溯法、记忆化法
  10. 清除浮动php,CSS清除浮动
  11. bi power 两个日期挑较早的日期_功率 BI 中的时间智能:利用时间
  12. [CTSC2008]网络管理Network
  13. jsp人事管理系统_人事管理系统(论文+源码)(SSH+MYSQL+JSP+HTML5)
  14. tensorflow 的 Session Exception
  15. java解决硬编码_工具类 解决硬编码问题
  16. 变速精灵 3.0免费版
  17. 数值作业:改进欧拉法求常微分方程C语言代码
  18. 商户开通微信支付详细流程文档
  19. 小学计算机画图课件第一册,第一册信息技术课件-第三章 第1课 认识“画图”软件 甘少版(共12张PPT)...
  20. java小球挡板游戏_多线程的一个小球游戏,就是以前的那个Pong游戏

热门文章

  1. 编程理论 —— 计算图框架
  2. Ditto —— windows 剪贴板增强小工具(复制粘贴多条记录)
  3. C/C++ 进阶 —— static
  4. python自动化办公-简直出神入化,教你用Python控制Excel实现自动化办公
  5. python能做什么-学 Python 都用来干嘛的?
  6. python怎么读发音百度翻译-用python实现百度翻译的示例代码
  7. python代码翻译器-用python实现百度翻译的示例代码
  8. python画简单图-使用Python中的Turtle库绘制简单的图形
  9. python培训班靠谱吗-学python去哪个培训机构好?靠谱的python培训机构推荐
  10. python自动化办公-Python自动化办公室(1),python,一