私の同僚の 1 人は、mysql の Length() 関数はレプリケーション セーフではないと言っています。この関数は update ステートメントで使用されます。これは本当ですか?クエリを作成し、レプリケーションを考慮する際に、他に何を考慮する必要がありますか
1 に答える
2
レプリケートしているテーブルも異なる文字セットを持つ可能性があるためです。マスターとスレーブの間のテーブルがまったく同じである必要はなく、インデックスが同じである必要もありません。
mysql> create table replic(
field1 varchar(20) character set latin1,
field2 varchar(20) character set utf16,
field3 varchar(20) character set utf32);
Query OK, 0 rows affected (0.07 sec)
mysql> insert into replic values('Adrian', 'Adrian', 'Adrian');
Query OK, 1 row affected (0.07 sec)
mysql> select length(field1), length(field2), length(field3) from replic;
+----------------+----------------+----------------+
| length(field1) | length(field2) | length(field3) |
+----------------+----------------+----------------+
| 6 | 12 | 24 |
+----------------+----------------+----------------+
1 row in set (0.00 sec)
于 2011-12-15T23:23:11.193 に答える