MysqlとOracleのページングSQL文
リンク先:http://www.xx566.com/detail/143.html
以前にまとめたように、Oracleページング・クエリー・ステートメントの最適化には、Oracleページング・ステートメントにも時間がかかりましたが、今日は面接で、異なるデータベースのページングsqlステートメントを受験しました.Oracleデータベースの作成に問題がありました.記憶を深める.
Mysqlのページングは、Oracleデータベースに比べて最も簡単で、Limitキーワードを提供することで、次のように簡単にページングできます.
Oracleのページングsqlは、従来rownumによってページングされていましたが、次のようになります.
しかし、上記のページングsqlは、データ量が膨大な場合、以降のページングクエリーほど遅くなり、rownumとrowidでページングを行う効率の高いページングクエリーがあります.以下のようにします.
総括:ページングの応用は様々なシステムの中で、すべて必ず少なくない構成部分で、ページングsqlに対する応用と最適化もずっとプログラム開発の中の重要な成分で、絶えず記憶と総括を必要とします.
以前にまとめたように、Oracleページング・クエリー・ステートメントの最適化には、Oracleページング・ステートメントにも時間がかかりましたが、今日は面接で、異なるデータベースのページングsqlステートメントを受験しました.Oracleデータベースの作成に問題がありました.記憶を深める.
Mysqlのページングは、Oracleデータベースに比べて最も簡単で、Limitキーワードを提供することで、次のように簡単にページングできます.
SELECT
*
FROM testTable
WHERE 1 = 1
LIMIT 1, 20;
Oracleのページングsqlは、従来rownumによってページングされていましたが、次のようになります.
SELECT
*
FROM (SELECT
T1.*,
ROWNUM rn
FROM (SELECT
*
FROM testTable
ORDER BY id DESC) T1
WHERE ROWNUM <= 20)
WHERE rn > 0;
しかし、上記のページングsqlは、データ量が膨大な場合、以降のページングクエリーほど遅くなり、rownumとrowidでページングを行う効率の高いページングクエリーがあります.以下のようにします.
SELECT
t1.*
FROM testTable t1, (SELECT
rid
FROM (SELECT
ROWNUM rn,
t.rid
FROM (SELECT
ROWID rid
FROM testTable
WHERE 1 = 1) t
WHERE ROWNUM <= 20)
WHERE rn > 0) t2
WHERE 1 = 1 AND t1.ROWID = t2.rid;
総括:ページングの応用は様々なシステムの中で、すべて必ず少なくない構成部分で、ページングsqlに対する応用と最適化もずっとプログラム開発の中の重要な成分で、絶えず記憶と総括を必要とします.