
比如你要排序的表名为"源表",有三个列"进程名","运行时间","优先级"
一、方案1:
用临时表,中间排序会在内存中进行
(在同一会话内)
1
CREATE
GLOBAL
TEMPORARY
TABLE
临时表名
AS
SELECT
FROM
源表
WHERE
1=0
2
INSERT
INTO
临时表名
SELECT
FROM
源表
ORDER
BY
优先级
--
排序条件
3
DELETE
FROM
源表;
4
INSERT
INTO
源表
SELECT
FROM
临时表名
ORDER
BY
优先级
5
SELECT
FROM
源表
--
确认下排序后的数据
6
COMMIT;
--
如果第5步确认后数据正确,如果不正确,就ROLLBACK
二、方案2:
非临时表,中间排序会占用磁盘存储,适用于大表(一般为百万行级以上)
1
CREATE
TABLE
临时表名
NOLOGGING
AS
SELECT
FROM
源表
WHERE
1=0
其它步骤一样
有点慢是正常的,
select top 20 from url 就只选择20条当然快咯。
如果是
select top 20 from [url] order by viste desc, id desc
那么数据库里还有把100多万的数据的数据先进行排序,然后才
会选择排序后的20条,数据太多了造成有点慢没说的了
以上就是关于我想把数据库中的一个表中的数据进行排序!!!!全部的内容,包括:我想把数据库中的一个表中的数据进行排序!!!!、sql数据库自动排序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)