3

パーティション化されたデータベース テーブルからいくつかの行を削除したいのですが、次のクエリは機能しません。

delete from myPartTable where date=2013.05.30,col1<>"A"

テーブル全体をメモリにロードしたり、rdb から削除したり、ディスクに書き戻したりするのは避けたいと思います。ディスクテーブルから直接削除できますか?

4

1 に答える 1

3

kdb 自体は、分割されたテーブルを操作する簡単な方法を提供しません。2 つのオプション:

  1. メモリ使用量を減らすには、削除する行のインデックスを取得します。列ごとに調べて削除します。これは、パーティション化されたデータベース操作のメモリ使用量を削減する場合の標準的な方法です。

  2. その行が削除されているかどうかをマークする列を維持し、削除をマークするために必要に応じてそのブール値を更新します。これにより、削除されていない場所をフィルタリングする必要があるすべての選択が遅くなるという犠牲を払って、削除が高速になります。後で、実際に行を削除します。

于 2013-06-17T13:09:17.973 に答える