Mysql大量資料快速排序方案

2021-08-07 17:30:09 字數 1142 閱讀 1569

日常開發中經常需要對資料進行排序,通常可以講資料庫中的資料獲取到後通過程式在記憶體中進行排序,但是這樣排序需要將排序內容從資料庫中查詢到內容,同時使用程式演算法進行排序,然後將排序結果更新入資料庫,這樣排序效率較低,開發量較大,本例採用資料庫本身自有屬性進行大資料的快速排序,具體方案如下:

1、刪除臨時表

drop

table

ifexists sort_temp

2、建立臨時表

1

create

table

sort_temp (

2 id bigint(12) not

null

auto_increment,

3 sort_id bigint(12) not

null comment '

被排序表id',

4primary

key(id)

5 ) engine=innodb auto_increment=

0default charset=utf8 comment=

'排序臨時表

'

3、將需要按照的排序規則內容資料插入到臨時表中(按照分類表的狀態倒序,ordby欄位不為空的按照正序排在最前面,為空的排在最後面,更新時間倒序,id正序)

insert

into sort_temp(sort_id) select c.id from t_catalog c order

by c.state desc, isnull(c.ordby), c.ordby, c.update_time desc, c.id

4、將臨時表中的資料回填到被排序表的ordby欄位中

update t_catalog c set c.ordby = (select

idfrom sort_temp t where

t.sort_id = c.id ), c.update_time = now()

5、刪除臨時表

drop

table

ifexists sort_temp

mysql 快速匯出 Mysql 大量資料快速匯出

mysqldump u root p q e t webgps4 dn location2 dn location2.sql mysqldump u root p q e t single transaction webgps4 dn location2 dn location2.sql sourc...

Mysql大量資料快速匯入匯出

一般的資料備份用 mysql路徑 bin mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 資料還原是 到mysql命令列下面,用 source 檔名 的方法。但是這種方法對大資料量的表進行操作就非常慢。因為他不僅匯出了資料還匯出了表結構。在針對大資料量的表時,我們可以用infile和 ...

MySQL 快速匯入大量資料 資料收集

一 load data infile 二 當資料量較大時,如上百萬甚至上千萬記錄時,向mysql資料庫中匯入資料通常是乙個比較費時的過程。通常可以採取以下方法來加速這一過程 一 對於myisam型別的表,可以通過以下方式快速的匯入大量的資料。alter table tblname disable k...