###質問
SQLで除外処理が一件の場合の処理について、方法AとBはどちらがいいでしょうか?
###現状
現状は、Twitterと同じサイトを作っていて、ユーザーのページを表示する仕組みを構築する段階です。
###目的
目的は、「先頭に固定するツイート」があり、それを含むツイートを20件を取得することです。
###方法A
その方法で悩んでいます。
以下のようにあるユーザーのツイートを20件取得しようかと思っていますが、でもレコードが多い場合、除外するSQL(「not exist」も「!=」も)重いですよね。
➀固定ツイートのIDを取得(SQLの処理)
➁固定ツイートを1件取得(SQLの処理)
➂固定ツイートを除外して20件取得(SQLの処理)
➃上の➁➂を連結(PHPでやる処理)
###方法B
そこで考えたのですが、除外するSQLはなくして
➀固定ツイートのIDを取得(SQLの処理)
➁固定ツイートを1件取得(SQLの処理)
➂ツイートを20件取得(SQLの処理)
➃上の➂から固定ツイートがあれば削除(PHPの処理)
という処理にしようかと思いました。
これだと固定ツイートがある場合に20件でなく19件の結果になってしまいますが、そこはたいして重要でないので、SQLが早い方がいいだろうと思った次第です。
###質問(改めて)
お聞きしたいのですが、方法Bの処理ってアリですか?それとも方法Aの方がいいですか?
もしくは良い方法があれば教えて頂きたいとも思います。
識者のみなさま宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/13 13:41 編集
2020/03/13 13:41
2020/03/13 13:59
2020/03/13 14:05 編集