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

淺析python中SQLAlchemy排序的一個坑

 更新時間:2017年02月24日 10:43:59   作者:Just 做 IT  
這篇文章主要介紹了關(guān)于python中SQLAlchemy排序的一個坑,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,感興趣的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

SQLAlchemy是Python編程語言下的一款ORM框架,該框架建立在數(shù)據(jù)庫API之上,使用關(guān)系對象映射進(jìn)行數(shù)據(jù)庫操作,簡言之便是:將對象轉(zhuǎn)換成SQL,然后使用數(shù)據(jù)API執(zhí)行SQL并獲取執(zhí)行結(jié)果。最近在使用SQLAlchemy排序遇到了一個坑,所以想著總結(jié)下來,分享給更多的朋友,下面來一起看看吧。

坑的代碼

query = db_session.query(UserVideo.vid,
         UserVideo.uid,
         UserVideo.v_width,
         UserVideo.v_height,
         UserVideo.create_time,
         UserVideo.cover,
         UserVideo.source_url,
         UserVideo.v_type,
         UserVideo.category,
         User.username,
         User.sex,
         UserExtraInfo.avatar,
         UserExtraInfo.watermark)
  query = query.filter(UserVideo.status == 1,
        User.uid == UserVideo.uid,
        UserExtraInfo.uid == UserVideo.uid) 
  query = query.filter(UserVideo.status == 1)
  query = query.order_by(-UserVideo.vid)
  query = query.limit(20).all()

不坑的代碼

query = db_session.query(UserVideo.vid,
         UserVideo.uid,
         UserVideo.v_width,
         UserVideo.v_height,
         UserVideo.create_time,
         UserVideo.cover,
         UserVideo.source_url,
         UserVideo.v_type,
         UserVideo.category,
         User.username,
         User.sex,
         UserExtraInfo.avatar,
         UserExtraInfo.watermark)
  query = query.filter(UserVideo.status == 1,
        User.uid == UserVideo.uid,
        UserExtraInfo.uid == UserVideo.uid) # .order_by(UserVideo.vid.desc()).limit(20).all()
  query = query.filter(UserVideo.status == 1)
  query = query.order_by(UserVideo.vid.desc())
  query = query.limit(20).all()

對,你沒看錯,就是那個橫杠,拉慢速度。改成 desc() 函數(shù)速度能提高10倍

下面附上一個 sqlalchemy 高性能隨機取出若干條數(shù)據(jù)

query = db_session.query(UserVideo.vid,
          UserVideo.uid,
          UserVideo.v_width,
          UserVideo.v_height,
          UserVideo.create_time,
          UserVideo.cover,
          UserVideo.source_url,
          UserVideo.v_type,
          UserVideo.category,
          User.username,
          User.sex,
          UserExtraInfo.avatar,
          UserExtraInfo.watermark)
   query = query.filter(UserVideo.status == 1, User.uid == UserVideo.uid, UserExtraInfo.uid == UserVideo.uid)
rvid = db_session.query(func.round(random.random() * func.max(UserVideo.vid)).label('rvid')).subquery()
query = query.filter(UserVideo.category == category)
query_tail = query
query_tail = query_tail.join(rvid, UserVideo.vid > rvid.c.rvid).limit(20).all()

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 一文帶你梳理Python的中級知識

    一文帶你梳理Python的中級知識

    Python是一種高級編程語言,它在眾多編程語言中,擁有極高的人氣和使用率。本文主要帶大家梳理一下Python中常用的中級知識,希望對大家有所幫助
    2023-04-04
  • python斐波那契數(shù)列的計算方法

    python斐波那契數(shù)列的計算方法

    這篇文章主要為大家詳細(xì)介紹了python斐波那契數(shù)列的計算方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python樹莓派學(xué)習(xí)筆記之UDP傳輸視頻幀操作詳解

    Python樹莓派學(xué)習(xí)筆記之UDP傳輸視頻幀操作詳解

    這篇文章主要介紹了Python樹莓派學(xué)習(xí)筆記之UDP傳輸視頻幀操作,結(jié)合實例形式詳細(xì)分析了Python樹莓派編程中使用UDP協(xié)議進(jìn)行視頻幀傳輸?shù)南嚓P(guān)操作技巧與注意事項,需要的朋友可以參考下
    2019-11-11
  • python畫圖的函數(shù)用法以及技巧

    python畫圖的函數(shù)用法以及技巧

    在本文里小編給大家整理的是關(guān)于怎么用python畫圖以及python畫圖中turtle函數(shù)的用法技巧,需要的朋友們參考下。
    2019-06-06
  • Tensorflow之構(gòu)建自己的圖片數(shù)據(jù)集TFrecords的方法

    Tensorflow之構(gòu)建自己的圖片數(shù)據(jù)集TFrecords的方法

    本篇文章主要介紹了Tensorflow之構(gòu)建自己的圖片數(shù)據(jù)集TFrecords的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python+Opencv識別兩張相似圖片

    Python+Opencv識別兩張相似圖片

    python的功能實在太強大,這篇文章主要介紹了Python+Opencv識別兩張相似圖片的相關(guān)資料,文中利用Opencv庫進(jìn)行了更簡潔化的實現(xiàn),感興趣的小伙伴們可以參考一下
    2016-04-04
  • Python實現(xiàn)統(tǒng)計英文文章詞頻的方法分析

    Python實現(xiàn)統(tǒng)計英文文章詞頻的方法分析

    這篇文章主要介紹了Python實現(xiàn)統(tǒng)計英文文章詞頻的方法,結(jié)合實例形式分析了Python針對英文單詞頻率統(tǒng)計的相關(guān)原理、實現(xiàn)方法及具體操作技巧,需要的朋友可以參考下
    2019-01-01
  • Python判斷文件和文件夾是否存在的方法

    Python判斷文件和文件夾是否存在的方法

    這篇文章主要介紹了Python判斷文件和文件夾是否存在的方法,本文還講解了判斷是否為文件或者目錄的方法、os.path.lexist的作用、FTP中判斷文件或目錄是否存在等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • python爬取豆瓣電影TOP250數(shù)據(jù)

    python爬取豆瓣電影TOP250數(shù)據(jù)

    這次以豆瓣電影TOP250網(wǎng)為例編寫一個爬蟲程序,并將爬取到的數(shù)據(jù)(排名、電影名和電影海報網(wǎng)址)存入MySQL數(shù)據(jù)庫中。
    2021-05-05
  • 利用Python快速搭建Markdown筆記發(fā)布系統(tǒng)

    利用Python快速搭建Markdown筆記發(fā)布系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了使用Python生態(tài)的成熟工具,在30分鐘內(nèi)搭建一個支持Markdown渲染、分類標(biāo)簽、全文搜索的私有化知識發(fā)布系統(tǒng),感興趣的小伙伴可以參考下
    2025-04-04

最新評論

大兴区| 印江| 彩票| 休宁县| 平武县| 泗水县| 永泰县| 赣州市| 湄潭县| 民乐县| 西城区| 新龙县| 嘉善县| 田东县| 大余县| 昆山市| 台前县| 汉川市| 柘荣县| 荣昌县| 沁源县| 南皮县| 长汀县| 麻城市| 平乐县| 石泉县| 平定县| 黄龙县| 禹州市| 许昌县| 丰镇市| 元谋县| 大化| 宜昌市| 南召县| 湖北省| 新邵县| 鲁甸县| 日照市| 高淳县| 炉霍县|