麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MySQL > 正文

MYSQL子查詢和嵌套查詢優化實例解析

2024-07-24 13:14:41
字體:
來源:轉載
供稿:網友

查詢游戲歷史成績最高分前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; 

執行時間僅為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' 

這樣的語句會導致索引無效,因為對每個dataline的值都需要用函數計算一遍,需要調整為:

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

總結

以上就是本文關于MYSQL子查詢和嵌套查詢優化實例解析的全部內容,希望對大家有所幫助。如有不足之處請留言,小編會及時更正。感謝朋友們對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产大片在线观看 | 婷婷亚洲一区二区三区 | 国产在线精品一区二区三区不卡 | 伊人一二三四区 | 主人在调教室性调教女仆游戏 | 成人免费观看毛片 | 亚洲精品午夜国产va久久成人 | av日韩一区二区三区 | 九九精品影院 | 久久99综合久久爱伊人 | 91网址在线播放 | jizzjizz中国少妇中文 | 天天色综合6 | 免费视频www在线观看 | 性猛aa久久久| 国产91久久精品一区二区 | 国产色片在线观看 | 黄网站免费入口 | 久久久一区二区三区精品 | 中国洗澡偷拍在线播放 | 在线成人免费观看视频 | 91懂色| 免费观看一级黄色片 | 久久精品视频日本 | h色视频网站 | 国产亚洲美女精品久久久2020 | 成年人免费视频播放 | 中文字幕在线观看精品 | 精品久久久一二三区播放播放播放视频 | 成人午夜在线观看视频 | 国产va在线观看 | 97视频 | 欧美激情猛片xxxⅹ大3 | 成人免费看视频 | 成年人免费视频大全 | 7777网站| 狠狠操视频网站 | 国产一区精品在线观看 | 天天草天天干天天射 | 国产一级毛片高清视频完整版 | 精品国产专区 |