欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中對于not in和minus使用的優(yōu)化

 更新時間:2015年05月08日 10:23:44   作者:羅龍九  
這篇文章主要介紹了MySQL中對于not in和minus使用的優(yōu)化,作者給出了實(shí)例和運(yùn)行時間對比,需要的朋友可以參考下

優(yōu)化前:

select count(t.id)
 from test t
 where t.status = 1
  and t.id not in (select distinct a.app_id
           from test2 a
           where a.type = 1
            and a.rule_id in (152, 153, 154))
      
 17:20:57 laojiu>@plan

PLAN_TABLE_OUTPUT
————————————————————————————————————————-
Plan hash value: 684502086

—————————————————————————————-
| Id | Operation      | Name       | Rows | Bytes | Cost (%CPU)| Time   |
—————————————————————————————-
|  0 | SELECT STATEMENT  |         |   1 |  18 |  176K (2)| 00:35:23 |
|  1 | SORT AGGREGATE   |         |   1 |  18 |      |     |
|* 2 |  FILTER      |         |    |    |      |     |
|* 3 |  TABLE ACCESS FULL| test   | 1141 | 20538 |  845  (2)| 00:00:11 |
|* 4 |  TABLE ACCESS FULL| test2 |   1 |  12 |  309  (2)| 00:00:04 |
—————————————————————————————-

Predicate Information (identified by operation id):
—————————————————

  2 – filter( NOT EXISTS (SELECT /*+ */ 0 FROM “test2″ “A” WHERE
       “A”.”type”=1 AND (“A”.”RULE_ID”=152 OR “A”.”RULE_ID”=153 OR
       “A”.”RULE_ID”=154) AND LNNVL(“A”.”APP_ID”<>:B1)))
  3 – filter(“T”.”status”=1)
  4 – filter(“A”.”type”=1 AND (“A”.”RULE_ID”=152 OR “A”.”RULE_ID”=153 OR
       “A”.”RULE_ID”=154) AND LNNVL(“A”.”APP_ID”<>:B1))
Statistics
———————————————————-
     0 recursive calls
     0 db block gets
  1762169 consistent gets
     0 physical reads
     0 redo size
    519 bytes sent via SQL*Net to client
    492 bytes received via SQL*Net from client
     2 SQL*Net roundtrips to/from client
     0 sorts (memory)
     0 sorts (disk)
     1 rows processed
21 rows selected.

優(yōu)化后:

 select count(*) from(
 select t.id
  from test t
 where t.status = 1
 minus
 select distinct a.app_id
  from test2 a
 where a.type = 1
  and a.rule_id in (152, 153, 154))
17:23:33 laojiu>@plan

PLAN_TABLE_OUTPUT
————————————————————————————————————————-
Plan hash value: 631655686

————————————————————————————————–
| Id | Operation       | Name       | Rows | Bytes |TempSpc| Cost (%CPU)| Time   |
————————————————————————————————–
|  0 | SELECT STATEMENT   |         |   1 |    |    | 1501  (2)| 00:00:19 |
|  1 | SORT AGGREGATE    |         |   1 |    |    |      |     |
|  2 |  VIEW        |         | 1141 |    |    | 1501  (2)| 00:00:19 |
|  3 |  MINUS       |         |    |    |    |      |     |
|  4 |   SORT UNIQUE    |         | 1141 | 20538 |    |  846  (2)| 00:00:11 |
|* 5 |   TABLE ACCESS FULL| test   | 1141 | 20538 |    |  845  (2)| 00:00:11 |
|  6 |   SORT UNIQUE    |         | 69527 |  814K| 3632K|  654  (2)| 00:00:08 |
|* 7 |   TABLE ACCESS FULL| test2 | 84140 |  986K|    |  308  (2)| 00:00:04 |
————————————————————————————————–

Predicate Information (identified by operation id):
—————————————————

  5 – filter(“T”.”status”=1)
  7 – filter(“A”.”type”=1 AND (“A”.”RULE_ID”=152 OR “A”.”RULE_ID”=153 OR
       “A”.”RULE_ID”=154))

21 rows selected.
Statistics
———————————————————-
     1 recursive calls
     0 db block gets
    2240 consistent gets
     0 physical reads
     0 redo size
    516 bytes sent via SQL*Net to client
    492 bytes received via SQL*Net from client
     2 SQL*Net roundtrips to/from client
     2 sorts (memory)
     0 sorts (disk)
     1 rows processed

在優(yōu)化sql的時候,我們需要轉(zhuǎn)變一下思路,等價的改寫sql;

改寫后的sql由于邏輯讀得到了天翻地覆的改變,很快得到結(jié)果。

第一條sql執(zhí)行計(jì)劃中有一個函數(shù),LNNVL(“A”.”APP_ID”<>:B1),lnnvl(exp)

如果exp的結(jié)果是false或者是unknown,那么lnnvl返回true;

如果exp的結(jié)果是true,返回false.

相關(guān)文章

  • mysql自動填充時間的兩種實(shí)現(xiàn)方式小結(jié)

    mysql自動填充時間的兩種實(shí)現(xiàn)方式小結(jié)

    這篇文章主要介紹了mysql自動填充時間的兩種實(shí)現(xiàn)方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • MySQL 可以用localhost 連接,但不能用IP連接的問題解決方法

    MySQL 可以用localhost 連接,但不能用IP連接的問題解決方法

    這篇文章主要介紹了MySQL 可以用localhost 連接,但不能用IP連接的問題解決方法的相關(guān)資料,這里提供了解決方案,需要的朋友可以參考下
    2016-12-12
  • MySql 5.6.14 winx64配置方法(免安裝版)

    MySql 5.6.14 winx64配置方法(免安裝版)

    這篇文章主要介紹了MySql 5.6.14 winx64配置方法(免安裝版)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • MySQL存儲引擎總結(jié)

    MySQL存儲引擎總結(jié)

    這篇文章主要介紹了MySQL存儲引擎總結(jié),本文講解了什么是存儲引擎、MyISAM、InnoDB、MEMORY、MERGE等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • MySQL中case?when的兩種基本用法及區(qū)別總結(jié)

    MySQL中case?when的兩種基本用法及區(qū)別總結(jié)

    在mysql中case when用于計(jì)算條件列表并返回多個可能結(jié)果表達(dá)式之一,下面這篇文章主要給大家介紹了關(guān)于MySQL中case?when的兩種基本用法及區(qū)別的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • mysql數(shù)據(jù)庫保存路徑查找方式

    mysql數(shù)據(jù)庫保存路徑查找方式

    這篇文章主要介紹了mysql數(shù)據(jù)庫保存路徑查找方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教方法
    2023-05-05
  • 解決MySQl查詢不區(qū)分大小寫的方法講解

    解決MySQl查詢不區(qū)分大小寫的方法講解

    今天小編就為大家分享一篇關(guān)于解決MySQl查詢不區(qū)分大小寫的方法講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 如何進(jìn)行mysql的優(yōu)化

    如何進(jìn)行mysql的優(yōu)化

    這篇文章主要介紹了如何進(jìn)行mysql的優(yōu)化,其實(shí)腳本之家之前就分享了很多的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • MySQL與PHP的基礎(chǔ)與應(yīng)用專題之內(nèi)置函數(shù)

    MySQL與PHP的基礎(chǔ)與應(yīng)用專題之內(nèi)置函數(shù)

    MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,本系列將帶你掌握php與mysql的基礎(chǔ)應(yīng)用,本篇MySQL的內(nèi)置函數(shù)開始
    2022-02-02
  • MYSQL加密和壓縮函數(shù)詳解以及實(shí)戰(zhàn)(附示例)

    MYSQL加密和壓縮函數(shù)詳解以及實(shí)戰(zhàn)(附示例)

    這篇文章主要給大家介紹了關(guān)于MYSQL加密和壓縮函數(shù)詳解以及實(shí)戰(zhàn)的相關(guān)資料,加密函數(shù)主要用來對數(shù)據(jù)進(jìn)行加密和界面處理,以保證某些重要數(shù)據(jù)不被別人獲取,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12

最新評論