テキスト領域を介してユーザー入力を受け入れる PHP アプリケーションに取り組んでいます。データベースに暗号化されて保存されます (AES_ENCRYPT を使用)。
BLOB または VARBINARY フィールドを使用する必要がありますか? どちらのタイプのフィールドにもパフォーマンスへの影響はありますか?
テキスト領域を介してユーザー入力を受け入れる PHP アプリケーションに取り組んでいます。データベースに暗号化されて保存されます (AES_ENCRYPT を使用)。
BLOB または VARBINARY フィールドを使用する必要がありますか? どちらのタイプのフィールドにもパフォーマンスへの影響はありますか?
ボヘミアンの答えは正確ではないと思います。VARBINARY は BLOB と同様にバイナリ データを格納するため、スペースを含む任意のデータを格納できます。
mysql> create table t1 (id integer auto_increment, data varbinary(100), primary key (id));
Query OK, 0 rows affected (0.09 sec)
// inserting '0', ' ', '0', ' ' - 4 characters including trailing space
mysql> insert into t1 (data) values (unhex('30203020'));
Query OK, 1 row affected (0.02 sec)
+----+------+
| id | data |
+----+------+
| 1 | 0 0 |
+----+------+
1 row in set (0.00 sec)
mysql> select t1.*, length(data) from t1;
+----+------+--------------+
| id | data | length(data) |
+----+------+--------------+
| 1 | 0 0 | 4 |
+----+------+--------------+
1 row in set (0.00 sec)