P粉6628028822023-08-31 13:18:44
私はほぼ確実に Silver のソリューションを選択します
あなたの声明:
### 意味がありません。 2 つの結果セットを分割/スライス/結合しても、パフォーマンスに測定可能な影響を与える可能性はほとんどありません。「リクエストが遅くなる」ということは決してありません!
これはあなたのシナリオに適した SQL ソリューションですが、関係するテーブルのサイズによっては、2 つの結果セットを結合するよりもほぼ確実に遅くなります。リーリー
ここで説明されているように、1000 を超えるおもちゃがある場合、再帰的 cte はデフォルト値 cte_max_recursion_ Depth に達します。 上記のクエリの前に次のコマンドを実行すると、制限を削除できます:
リーリーまたは、
toysテーブルの「nofollow noreferrer">ROW_NUMBER() を使用して、再帰的 CTE を非再帰的 CTE に変更します。 リーリー これは再生可能な
dbfiddle です。 <>
P粉5712335202023-08-31 00:35:47
今年この問題に遭遇しました。クエリ内で直接並べ替えるのはより複雑です。MySQL の結果セットは固定位置で並べ替えられます複雑さを詳しく理解したい場合は、この質問を参照してください。
以前に行ったことは比較的単純で、2 つのクエリで完了しました。
これは参考になる例です
リーリー