2011-12-29 16 views
7

2つだけの可能な値、0 & 1またはTrue &偽、それはBIT(1)より良い仕事をしていることは明白である考慮:MySQLがBIT(1)の代わりにBooleanをTINYINT(1)として解釈するのはなぜですか?

  • BIT(1)力のみ2可能な値:0と1をTINYINT(1)は10より小さい整数値(0,1,2,3,4,5 ....)を受け入れることができ、あいまいである可能性があります。
  • 複数のBIT(1)列を複数のバイトにまとめることができるため、複数のTINYINT(1)列より少ないスペースが必要です。

なぜMySQLはBooleanをTINYINT(1)として解釈しますが、BIT(1)は解釈しないのですか? boolean値を扱う際にBIT(1)よりもTINYINT(1)を使用する利点はありますか?

答えて

5
これは、バージョンとデータベースエンジンとドライバに依存

  • BITは、いくつかのJDBCドライバは、この(例えばケトルの同梱ドライバを)言われる必要があるのMyISAMとInnoDBの
で5.05+で適切にサポートされています

もちろん、TINYINTよりもBITが好ましいです。
これはちょうどTINYINTを維持する慣性と慣性です...

+0

+1慣性に対して。私はまだ正当な理由がないのにほとんどすべての状況で 'TINYINT(1)'を使います。 –

+0

+1も慣性です。私は好きなSQLエディタでTINYINTのような簡単なBITデータの編集を許可していないので、まだTINYINT(1)を使用しています。場合によっては時間を大幅に節約できます。 – Donatello

関連する問題