カッサンドラの新しいストレージエンジンについての美しいものは、にはの値が格納されています。それが意味することは、それが意図されたものです:null値は単にそこにはいけない値です。 が明示的に(または暗黙的に、後で参照してください)挿入されていないと、ストレージスペースが消費されず、処理能力とIO帯域幅も使用されないため、これは大きな柔軟性をもたらします。
確かに、NULL値を持つ行を移入するのは簡単です:
INSERT INTO mytable (pk, c2, c3) VALUES (0x1234, null, null);
明示的にC2とC3の両方にNULL値を格納するためにC *を言っているこの方法です。あなたが明示的にNULL値を挿入すると、C * がフードnuder墓石を挿入しますので、私は、肉眼効果を言う
INSERT INTO mytable (pk) VALUES (0x1234);
注意:ただし、同じ肉眼効果を得ることができます。長期的には、これはC *が検索、圧縮などを実行する方法のおかげであなたを噛んでしまいます。可能な限り避けるべきです。
今や、罠があります。墓石暗黙にを作成することもできます。このは、TTLの機能をCassandraに組み込んで使用すると、になります。
結論として、自分自身について気にしている場合は、null値の挿入を実行しないことをお勧めします。アプリケーションレベルでチェックを行うと、読み込み中など、後で時間とお金を節約できます。
私は何かできることを提案できますか?私は各挿入中にすべての列をチェックしたくない。また、私は多くの時間がかかるので、すべてのケースで動的にクエリを作成する必要はありません。 – ArchitGarg
独自のコードを記述するか、QueryBuilderのINSERTおよびUPDATEコードを変更して、NULL挿入の設定を解除することができます –