最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL子查詢和嵌套查詢優(yōu)化實例解析

 更新時間:2017年10月13日 09:14:21   作者:dodomail  
本文通過實例向大家介紹了MYSQL子查詢和嵌套查詢優(yōu)化的相關(guān)內(nèi)容,附代碼示例,具有一定參考價值。希望對大家使用MySQL有所幫助。

查詢游戲歷史成績最高分前100

Sql代碼

SELECT ps.* FROM cdb_playsgame ps WHERE ps.credits=(select MAX(credits)  
FROM cdb_playsgame ps1  
where ps.uid=ps1.uid AND ps.gametag=ps1.gametag) AND ps.gametag='yeti3'  
GROUP BY ps.uid order by ps.credits desc LIMIT 100; 

Sql代碼

SELECT ps.*  
FROM cdb_playsgame ps,(select ps1.uid, ps1.gametag, MAX(credits) as credits 
FROM cdb_playsgame ps1 group by uid,gametag) t 
WHERE ps.credits=t.credits AND ps.uid=t.uid AND ps.gametag=t.gametag AND ps.gametag='yeti3'  
GROUP BY ps.uid order by ps.credits desc LIMIT 100; 

執(zhí)行時間僅為0.22秒,比原來的25秒提高了10000倍

查詢當天游戲最好成績

Sql代碼

 SELECT ps. * , mf. * , m.username 
FROM cdb_playsgame ps 
LEFT JOIN cdb_memberfields mf ON mf.uid = ps.uid 
LEFT JOIN cdb_members m ON m.uid = ps.uid 
WHERE ps.gametag = 'chuansj' 
AND FROM_UNIXTIME( ps.dateline, '%Y%m%d' ) = '20081008' 
AND ps.credits = ( 
SELECT MAX( ps1.credits ) 
FROM cdb_playsgame ps1 
WHERE ps.uid = ps1.uid 
AND ps1.gametag = 'chuansj' 
AND FROM_UNIXTIME( ps1.dateline, '%Y%m%d' ) = '20081008' ) 
GROUP BY ps.uid 
ORDER BY credits DESC 
LIMIT 0 , 50  

像查詢里:

AND ps.credits=(SELECT MAX(ps1.credits)  
 FROM {$tablepre}playsgame ps1 where ps.uid=ps1.uid AND ps1.gametag = '$game'  
 AND FROM_UNIXTIME(ps1.dateline, '%Y%m%d') = '$todaytime' ) 

特別消耗時間

另外,像:

FROM_UNIXTIME(ps1.dateline, '%Y%m%d') = '$todaytime' 

這樣的語句會導(dǎo)致索引無效,因為對每個dataline的值都需要用函數(shù)計算一遍,需要調(diào)整為:

Sql代碼

AND ps1.dateline >= UNIX_TIMESTAMP('$todaytime')  

//更改后
Sql代碼

 SELECT ps. * , mf. * , m.username 
FROM cdb_playsgame ps, cdb_memberfields mf, cdb_members m, ( 
 
SELECT ps1.uid, MAX( ps1.credits ) AS credits 
FROM cdb_playsgame ps1 
WHERE ps1.gametag = 'chuansj' 
AND ps1.dateline >= UNIX_TIMESTAMP( '20081008' ) 
GROUP BY ps1.uid 
) AS t 
WHERE mf.uid = ps.uid 
AND m.uid = ps.uid 
AND ps.gametag = 'chuansj' 
AND ps.credits = t.credits 
AND ps.uid = t.uid 
GROUP BY ps.uid 
ORDER BY credits DESC 
LIMIT 0 , 50  

對于每個球員,找出球員號碼,名字以及他所引起的罰款的號碼,但只是針對那些至少有兩次罰款的球員。

更緊湊的查詢,在FROM子句中放置一個子查詢。

Sql代碼

SELECT PLAYERNO,NAME,NUMBER 
FROM (SELECT PLAYERNO,NAME, 
       (SELECT COUNT(*) 
       FROM PENALTIES 
       WHERE PENALTIES.PLAYERNO = 
          PLAYERS.PLAYERNO) 
       AS NUMBER 
    FROM PLYERS) AS PN 
WHERE NUMBER>=2 

FROM子句中的子查詢決定了每個球員的號碼,名字和罰款的編號。接下來,這個號碼變成了中間結(jié)果中的一列。然后指定了一個條件(NUMBER>=2);最后,獲取SELECT子句中的列。

總結(jié)

以上就是本文關(guān)于MYSQL子查詢和嵌套查詢優(yōu)化實例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以參閱:mysql in語句子查詢效率慢的優(yōu)化技巧示例、淺談mysql的子查詢聯(lián)合與in的效率等,如有不足之處請留言,小編會及時更正。

感謝朋友們對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Linux系統(tǒng)下自行編譯安裝MySQL及基礎(chǔ)配置全過程解析

    Linux系統(tǒng)下自行編譯安裝MySQL及基礎(chǔ)配置全過程解析

    這篇文章主要介紹了Linux系統(tǒng)下自行編譯安裝MySQL及基礎(chǔ)配置全過程解析,配置方面主要針對InnoDB引擎來講,需要的朋友可以參考下
    2016-02-02
  • MySql存儲過程和游標的使用實例

    MySql存儲過程和游標的使用實例

    我們在實際的開發(fā)中會遇到一些統(tǒng)計的業(yè)務(wù)功能,如果我實時的去查詢的話有時候會很慢,此時我們可以寫一個存儲過程來實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于MySql存儲過程和游標使用的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Can’t open file:''[Table]mytable.MYI''

    Can’t open file:''[Table]mytable.MYI''

    也許很多人遇到過類似Can’t open file: ‘[Table]mytable.MYI’ 這樣的錯誤信息,卻不知道怎么解決他,下面我們做個介紹,
    2011-01-01
  • MySQL利用UNION連接2個查詢排序失效詳解

    MySQL利用UNION連接2個查詢排序失效詳解

    這篇文章主要給大家介紹了關(guān)于MySQL利用UNION連接2個查詢排序失效的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-12-12
  • mysql通過文檔讀取并執(zhí)行命令之快速為mysql添加多用戶和數(shù)據(jù)庫技巧

    mysql通過文檔讀取并執(zhí)行命令之快速為mysql添加多用戶和數(shù)據(jù)庫技巧

    這篇文章主要介紹了mysql通過文檔讀取并執(zhí)行命令之快速為mysql添加多用戶和數(shù)據(jù)庫技巧的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • mysql數(shù)據(jù)庫連接池配置教程

    mysql數(shù)據(jù)庫連接池配置教程

    在與數(shù)據(jù)庫進行連接的時候,會牽扯到數(shù)據(jù)庫連接池的配置,本文將詳細介紹mysql數(shù)據(jù)庫連接池配置,需要了解跟多的朋友可以參考下
    2012-11-11
  • mysql如何執(zhí)行流程

    mysql如何執(zhí)行流程

    MySQL主要分為server層和存儲引擎層,server層負責連接、查詢緩存、分析、優(yōu)化和執(zhí)行,存儲引擎層負責數(shù)據(jù)存儲和提取,SQL查詢執(zhí)行流程包括連接、認證、權(quán)限檢查、分析、優(yōu)化和執(zhí)行,更新語句執(zhí)行涉及重做日志(redolog)和歸檔日志(binlog)
    2024-11-11
  • mysql如何查詢?nèi)掌谂c時間

    mysql如何查詢?nèi)掌谂c時間

    這篇文章主要介紹了mysql如何查詢?nèi)掌谂c時間,幫助大家更好的理解和學習mysql,感興趣的朋友可以了解下
    2020-08-08
  • mysql自增長id用完了該怎么辦

    mysql自增長id用完了該怎么辦

    如果你用過或了解過MySQL,那你一定知道自增主鍵了,下面這篇文章主要給大家介紹了關(guān)于mysql自增長id用完了該怎么辦的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • 在MySQL中實現(xiàn)二分查找的詳細教程

    在MySQL中實現(xiàn)二分查找的詳細教程

    這篇文章主要介紹了在MySQL中實現(xiàn)二分查找的詳細教程,來自計算機研究生考試原題,需要的朋友可以參考下
    2015-05-05

最新評論

呈贡县| 沐川县| 孟连| 商都县| 绥宁县| 玉田县| 竹山县| 时尚| 措勤县| 通河县| 金乡县| 怀仁县| 洛宁县| 桃江县| 濮阳市| 池州市| 博野县| 崇明县| 武强县| 井研县| 云梦县| 南皮县| 绥德县| 蓝山县| 开原市| 杂多县| 铁岭县| 南阳市| 夹江县| 罗甸县| 景东| 济阳县| 陕西省| 昭通市| 利川市| 株洲县| 大港区| 中超| 余庆县| 蒙城县| 若羌县|