`

排序时最快的取出尽量少的字段且索引字段

QQ 
阅读更多
select company_albums.id,company.name as company_name,company.url as company_url,company_albums.name as company_albums_name,company_albums.url as company_albums_url,view_count,thumbnail_path,qq ,brand_shop_id
     from company,company_albums
        where company_albums.com_id=company.id
          ORDER BY `view_count` desc
              LIMIT 69600, 15 ;

explain select company_albums.id,company.name as company_name,company.url as company_url,company_albums.name as company_albums_name,company_albums.url as company_albums_url,view_count,thumbnail_path,qq ,brand_shop_id
     from company,company_albums
        where company.id=company_albums.com_id
          ORDER BY `view_count` desc
              LIMIT 69600, 15 \G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: company_albums
         type: ALL
possible_keys: com_idx
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 72441
        Extra: Using filesort
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: company
         type: eq_ref
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 4
          ref: test_01.company_albums.com_id
         rows: 1
        Extra:
2 rows in set (0.00 sec)

----------------------------------------
select company_albums.id,company_albums.name as company_albums_name,company_albums.url as company_albums_url,view_count,thumbnail_path,company.name as company_name,company.url as company_url,qq ,brand_shop_id
    from company_albums ,(select company_albums.id as ca_id
    from company,company_albums
        where company_albums.com_id=company.id
          ORDER BY `view_count` desc
             LIMIT 69600, 15) as t,company 
                   where company.id=company_albums.com_id and t.ca_id = company_albums.id
                       order by view_count desc;


explain select company_albums.id,company_albums.name as company_albums_name,company_albums.url as company_albums_url,view_count,thumbnail_path,company.name as company_name,company.url as company_url,qq ,brand_shop_id
    from company_albums ,(select company_albums.id as ca_id
    from company,company_albums
        where company_albums.com_id=company.id
          ORDER BY `view_count` desc
             LIMIT 69600, 15) as t,company 
                   where company.id=company_albums.com_id and t.ca_id = company_albums.id
                       order by view_count desc\G;
*************************** 1. row ***************************
           id: 1
  select_type: PRIMARY
        table: <derived2>
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 18
        Extra: Using temporary; Using filesort
*************************** 2. row ***************************
           id: 1
  select_type: PRIMARY
        table: company_albums
         type: eq_ref
possible_keys: PRIMARY,com_idx
          key: PRIMARY
      key_len: 4
          ref: t.ca_id
         rows: 1
        Extra:
*************************** 3. row ***************************
           id: 1
  select_type: PRIMARY
        table: company
         type: eq_ref
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 4
          ref: test_01.company_albums.com_id
         rows: 1
        Extra:
*************************** 4. row ***************************
           id: 2
  select_type: DERIVED
        table: company_albums
         type: ALL
possible_keys: com_idx
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 72441
        Extra: Using filesort
*************************** 5. row ***************************
           id: 2
  select_type: DERIVED
        table: company
         type: eq_ref
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 4
          ref: test_01.company_albums.com_id
         rows: 1
        Extra: Using index
5 rows in set (0.34 sec)
分享到:
评论

相关推荐

    SQL性能优化

     SQL在运行时先取出数个查询的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。  实际大部分应用中是不会产生重复的记录,推荐采用UNION ALL操作符...

    mysql命令大全-快速使用mysql

    对查询结果进行排序后,取出第10条至第20条记录。 #### 26. 数据类型与优化 了解不同数据类型的存储方式和性能影响,合理选择可以提升查询效率和存储空间利用率。 #### 27. NULL值处理与枚举类型 设置字段不允许...

    KingbaseES V8R3 执行计划详解.docx

    - **全索引扫描(Index Only Scan)**:仅通过索引获取所需数据,无需回表,效率更高,但要求索引包含所有查询字段。 - **位图扫描(Bitmap Index Scan)**:适用于多列组合索引或在大数据量下进行并集操作,通过...

    Redis基础数据结构与核心原理(1)1

    例如,存储用户信息时,每个字段对应一个哈希键,比将整个对象序列化为字符串更灵活。然而,这会占用更多存储空间,需要权衡使用。 4. 集合(set) 集合类似 Java 中的 HashSet,成员唯一且无序。它可以用于存储不...

    MySQL查询倒数第二条记录实现方法

    在MySQL中,查询倒数第二条记录通常涉及到对数据排序后进行限制选择。这里我们将讨论几种不同的实现方法,以及它们的适用场景和优缺点。 ### 方法1:使用`LIMIT`子句 ```sql SELECT * FROM holder_change_...

    数据库招聘试题数据库招聘试题.doc

    6. **按c字段排序取第21-30条记录**: ```sql SELECT * FROM ( SELECT T.*, ROWNUM RN FROM ( SELECT * FROM T ORDER BY c ) T WHERE ROWNUM ) WHERE RN &gt;= 21; ``` ### 数据库基本概念类 1. **...

    sqlserver试题含答案.doc

    1.1 SQL Server服务器中,给定表table1中有两个字段ID、LastUpdateDate,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。 答:Select ID FROM table1 Where ...

    2021-2022计算机二级等级考试试题及答案No.11175.docx

    1. 在数据库查询中,查找地址最后两个字为"8号"的记录,应该使用Right函数取出地址字段的最后两个字符进行比较。因此,正确答案是A. Right([地址],2)="8号"。 2. 在VB或类似编程环境中,要使文本框同时显示水平和...

    淘宝校园招聘笔试试题.doc

    - **使用索引不一定提高性能**:在全表扫描更快的情况下,索引可能无用。 - **绑定变量**:动态SQL中的占位符,减少硬解析,提高性能,但也可能导致执行计划不稳定。 - **稳定执行计划**:使用hints或绑定变量,...

    易语言程序免安装版下载

     静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构更合理(取消了“易格式体”),加载速度更快,而且有效解决了“病毒误报”和...

    Java EE常用框架.xmind

    FormAuthenticationFilter拦截住取出request中的username和password(两个参数名称是可以配置的) FormAuthenticationFilter 调用realm传入一个token(username和password) realm认证时根据username...

    2021-2022计算机二级等级考试试题及答案No.19185.docx

    - **报表向导**:通过向导引导用户完成报表创建的过程,相比自动报表提供了更多的自定义选项,如字段选择、排序规则等。 - **报表设计视图**:允许用户在设计视图中自由地设计报表的布局、样式等,具有高度的定制性...

Global site tag (gtag.js) - Google Analytics