We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
参照先の行が削除されたときは参照元を自動で更新する機能( #71 )について,現在は削除をするとすぐに参照元を更新するようになっています.
しかし,行を削除する度に参照元を即時更新するという仕様では,索引がなければ時間計算量は O(n) になってしまいます(n は参照元の行数). n が大きかったり,頻繁に行を削除したりするのであれば,索引がないと使い物になりません.
そこで,参照元を更新するタイミングを遅らせるという案があります. 方法としては,削除行をデフォルト値で埋めて再利用を禁止にし,参照元もそのままにしておきます. 削除行がある程度の量に達した時点で,参照元を更新し,削除行の再利用を許可します. これなら,参照元の更新にかかる時間計算量は同じですが,実行頻度を大幅に減らすことが可能なので,平均の時間計算量は小さくすることができます.
参照元の更新を遅らせることにより,以下のように制限が発生します.
The text was updated successfully, but these errors were encountered:
基本的な考え方は,削除した行をデフォル値で埋めて,参照元を更新するまで再利用を禁止するというものです.
実装するとなると,参照元を更新するタイミングや,削除行を再利用する方法が課題になりそうです.
Sorry, something went wrong.
s-yata
No branches or pull requests
概要
参照先の行が削除されたときは参照元を自動で更新する機能( #71 )について,現在は削除をするとすぐに参照元を更新するようになっています.
しかし,行を削除する度に参照元を即時更新するという仕様では,索引がなければ時間計算量は O(n) になってしまいます(n は参照元の行数).
n が大きかったり,頻繁に行を削除したりするのであれば,索引がないと使い物になりません.
そこで,参照元を更新するタイミングを遅らせるという案があります.
方法としては,削除行をデフォルト値で埋めて再利用を禁止にし,参照元もそのままにしておきます.
削除行がある程度の量に達した時点で,参照元を更新し,削除行の再利用を許可します.
これなら,参照元の更新にかかる時間計算量は同じですが,実行頻度を大幅に減らすことが可能なので,平均の時間計算量は小さくすることができます.
制限事項
参照元の更新を遅らせることにより,以下のように制限が発生します.
The text was updated successfully, but these errors were encountered: