2012-01-26 10 views
0

1つのテーブルに複数のブール値の列があります。私のコードの便宜のために、1つの列を使用してそれらのすべてを置き換えたいと考えています。新しい列では、各ビットは元のブール型列を表します。しかし、私がこれを好きなら、where節でビット単位の演算を行わなければならないので、インデックスを使うことはできません。MYSQLでビット単位の操作を使用するとパフォーマンスが低下しますか?

MYSQLでビット単位の操作を使用するとパフォーマンスが低下しますか?

+1

* Javaプログラマーは、このアイディアをかなり頻繁に「発見」します。データベースの設計者はより良いことを知っています。*あなたはプロの意見を読むべきです[ここ](http://dba.stackexchange.com/questions/10504/db-optimization-with-2-to-the-power-of-n-approach - 清潔化) –

+0

ああ、もう一人は、最も重要なものを最適化するのに最も時間を費やしています。悪い場合には、物事を遅らせることさえあります。それをきれいに行い、別々の列を定義します。また、列として宣言しても、データベースエンジンがビット単位の操作を使用する可能性があります。 – TMS

答えて

2
I must do bitwise operation in the where clause, so I can't use index for it. 

あなた自身の質問に答えました。クエリがインデックスを使用しない場合、mysqlは格納されたすべての実際の値をチェックして一致するかどうかを確認する必要があります。これはかなり遅くなります。

2

あなたは既にあなたの質問に答えました - so I can't use an index for it - ほとんどの場合、パフォーマンスが損なわれます。

関連する問題