-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CreatedAtはやっぱりほしい #12557
Comments
今の期間指定クエリはどうしてるんだろうと思って調べてみたら、 任意の時刻からIdService.genId() をして、 where(id > 指定時刻に生成されるるID) としているらしい |
パフォーマンス上の利用で dateオブジェクトがメモリを食うという話なら、 Misskeyのアプリ上ではselectの対象にcreatedAtを含めなければよいかも |
期間によるパーティショニングがやりやすくなるなど、管理的なメリットも大いにあるように思えます。 |
pnpm dlx tsx <<<'process.stdout.write(require("./packages/backend/src/misc/id/aid").genAid(Date.now()).slice(0,8)+"00\n")' |
手動で閲覧できたら「楽」なのは同意するが、じゃあ楽ならいいかというとそうは思っていない。 |
いやでも 1fa1d31#commitcomment-130577911 の指摘内容を前提とするなら、スクリプトを組んだとてクエリのパフォーマンスが悪いという問題を孕むかもしれない |
期間によるパーティショニングが絶対Date型じゃないとダメなのであれば持っておいても良さそう |
パーティショニングってMisskeyが対応しなくても透過的に管理者が勝手にできるのかしら |
CreatedAtがあったらなという話は以下でも出ていました。 |
今みたいにIDだけでクエリーすると厳しいけどできなくはないですね |
ioでは2023.x.xマージの時点でcreatedAtを消さない方針にしてました ref: MisskeyIO@2883f28 (ちょっと違う変更も混ざってますが) |
postgresqlではBase36エンコーディングはPL/SQLなどで関数を自分で行わないといけなさそう aidだけでこれなので、他のid体系を採用した場合などより事情は複雑になりそうで、技術的には可能だけど、その苦労に見合わないように思う ちなみにパーティショニングはアプリケーションからは特に気にする必要ないはず |
これはアプリケーション実装上といよりデータベースを管理運営する上でやっぱりほしいですよねぇ。 |
ちなみにPL/SQLでやろうとするとこんな感じのアプローチになるようです
|
postgres上でAIDを生成するのではなく、アプリケーションから2つの期間からAIDを採番してその間にあるものを抽出するということはまあできないので、 createdAtがないからパーティショニングができないとかいうことはないけど、createdAtはあったほうがうれしいと思いました |
Summary
DBのレコードを直接見たときにいつ作られたレコードなのか判別するのがとてもむずかしい。
CreatedAtの復活を熱望する
Purpose
DB上に直接SQLを実行する際に期間指定のクエリを実行するのが困難である
また、DBを直接見たときにレコードができた時間が人間にとって判別できない
The text was updated successfully, but these errors were encountered: