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

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

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

查詢游戲歷史成績(jī)最高分前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í)行時(shí)間僅為0.22秒,比原來(lái)的25秒提高了10000倍

查詢當(dāng)天游戲最好成績(jī)

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' ) 

特別消耗時(shí)間

另外,像:

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

這樣的語(yǔ)句會(huì)導(dǎo)致索引無(wú)效,因?yàn)閷?duì)每個(gè)dataline的值都需要用函數(shù)計(jì)算一遍,需要調(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  

對(duì)于每個(gè)球員,找出球員號(hào)碼,名字以及他所引起的罰款的號(hào)碼,但只是針對(duì)那些至少有兩次罰款的球員。

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

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子句中的子查詢決定了每個(gè)球員的號(hào)碼,名字和罰款的編號(hào)。接下來(lái),這個(gè)號(hào)碼變成了中間結(jié)果中的一列。然后指定了一個(gè)條件(NUMBER>=2);最后,獲取SELECT子句中的列。

總結(jié)

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

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

相關(guān)文章

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

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

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

    MySql存儲(chǔ)過程和游標(biāo)的使用實(shí)例

    我們?cè)趯?shí)際的開發(fā)中會(huì)遇到一些統(tǒng)計(jì)的業(yè)務(wù)功能,如果我實(shí)時(shí)的去查詢的話有時(shí)候會(huì)很慢,此時(shí)我們可以寫一個(gè)存儲(chǔ)過程來(lái)實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于MySql存儲(chǔ)過程和游標(biāo)使用的相關(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’ 這樣的錯(cuò)誤信息,卻不知道怎么解決他,下面我們做個(gè)介紹,
    2011-01-01
  • MySQL利用UNION連接2個(gè)查詢排序失效詳解

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

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

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

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

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

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

    mysql如何執(zhí)行流程

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

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

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

    mysql自增長(zhǎng)id用完了該怎么辦

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

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

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

最新評(píng)論

望城县| 莱芜市| 恩施市| 盐源县| 安西县| 繁峙县| 石家庄市| 克东县| 明水县| 阿拉善右旗| 丰都县| 小金县| 博白县| 阳春市| 禹州市| 辽宁省| 秀山| 和硕县| 江川县| 咸丰县| 桐柏县| 武邑县| 桂平市| 无为县| 伊春市| 重庆市| 慈溪市| 大理市| 成都市| 安平县| 江永县| 石柱| 涡阳县| 六枝特区| 江阴市| 武功县| 虎林市| 高唐县| 安仁县| 富源县| 新和县|