優化特定型別的查詢題

2021-07-03 12:57:54 字數 1104 閱讀 1681

參考資料 高效能mysql p.236

注意:

使用近似值

2.確保任何的group by和order by中的表示式只涉及到乙個表中的列。(why? b+樹的維度是乙個表)

limit m(偏移量),n;

limit n;

解決這類問題的思路有

優化大偏移量的效能

title和film_id建有索引

select film_id,description from sakila.film order

by title limit 50,5;

*注意*limit 子句總是最後執行,所以會有先掃瞄,description不能被覆蓋到。

select film.film_i,film.description 

from saklia.flim

inner

join(

select film_id from skalia.film

order

by title limit 50,5

)as lim using(flim_id);

select id, k, c,pad

from fsbtest.aaa force index(primary)

where ((id >= '1604343')) and ((id < '1605526'))

由於每個表都有主鍵,所以每次範圍掃瞄都有乙個明確的開始和結束位置,最終可以掃瞄完全表。這裡不使用limit,而是每次select後,判斷剛才的select得到的行數,動態的決定下次的id的最大值是多少。最終達到每次都取得近似的資料條數,例如1000條。通過這種方式,就很天然的避免了排序,缺點是每次返回的資料行的數目不確定。(當然這裡的前提是id,order by的第乙個引數)。比較通用的說法應該是,按照 order by的字段的範圍上取,在where子句中

限制where子句的範圍。

*使用 nosql 例如redis的sorted set 存進去就天然有序,取出來的時候不用排序,但是需要應用雙寫,比較麻煩,使用場景也很特定。

查詢特定的值

題目描述 在乙個序列 下標從1開始 中查詢乙個給定的值,輸出第一次出現的位置。輸入 第一行包含乙個正整數n,表示序列中元素個數。1 n 10000。第二行包含n個整數,依次給出序列的每個元素,相鄰兩個整數之間用單個空格隔開。元素的絕對值不超過10000。第三行包含乙個整數x,為需要查詢的特定值。x的...

PHP 查詢某型別檔案包含特定字元

需求 寫了大量的php程式,突然想找回某乙個檔案 含特定關鍵字 翻遍了虛擬目錄裡面的每乙個php檔案都沒有找到,於是寫了個指令碼去幫忙搜尋 例子 filelist array dir e ext php word keyword findword dir,ext,word 功能 遍歷資料夾指定型別檔...

查詢特定字尾的檔案

coding cp936 python 27 xiaodeng 查詢特定字尾的檔案 方法一 importos os.listdir,獲取指定目錄下的內容 返回乙個list 該目錄下所有的內容都將被返回 import osdef filetype filename,args for types in ...