MySQL隨機取資料最高效率的方法

2021-12-29 22:37:32 字數 511 閱讀 7672

發現在sql語句裡有乙個 order by rand() 這樣的乙個語句,這個說是用著方便,但是效率實在是太低了,於是我用了以下的方法來優化,就是用join表的方法來達到這個取隨機資料行的方法,你可以用 explain sql語句來分析一下以下兩條sql語句的效率,當然,資料量至少上10萬以上才能看出效能。

[1]普通方法, 效率太低

select * from table order by rand() limit 10;

[2] join的方法:

select *

from `table` as t1 join (select round(rand() * ((select max(id) from `table`) – (select min(id) from `table`)) + (select min(id) from `table`)) as id) as t2

where t1.id >= t2.id

order by t1.id limit 10;

作者「威爾軟體」

mysql隨機取資料的幾種高效率方法

介紹高效的mysql隨機資料的方法 1 普通方法,效率太低 如下 複製 select from table order by rand limit 10 2 join的方法 如下 複製 select from table as t1 join select round rand select max...

判斷數字最高效率的演算法

這是以前csdn上乙個經典的帖子,我當年剛學 net的時候學習的,不知道有沒有朋友有不同意見 q 怎樣判斷是數字?例如 12345 是數字,12345t 不是數字 12345年 不是數字 非常感謝各位,我以前也曾試過用正則式 和 異常法來做 但用的正則式中的另乙個方法,可沒這麼簡單哦 呵榀,這個不錯...

mysql 高效率查詢背景

說起mysql查詢效率問題,就無法繞開索引問題,而innodb索引是mysql儲存引擎中的重中之重,innodb索引包括 主鍵索引 聚集索引 也就是實際資料和主鍵資料儲存在一起的索引。innodb除了主鍵索引以外就是二級索引,二級索引葉子結點的資料區儲存的是主鍵,mysql每個資料頁面有16k大小,...