日常開發中經常需要對資料進行排序,通常可以講資料庫中的資料獲取到後通過程式在記憶體中進行排序,但是這樣排序需要將排序內容從資料庫中查詢到內容,同時使用程式演算法進行排序,然後將排序結果更新入資料庫,這樣排序效率較低,開發量較大,本例採用資料庫本身自有屬性進行大資料的快速排序,具體方案如下:
1、刪除臨時表
droptable
ifexists sort_temp
2、建立臨時表
1create
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正序)
insertinto 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 = (selectidfrom sort_temp t where
t.sort_id = c.id ), c.update_time = now()
5、刪除臨時表
droptable
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...