我的PHP应用程序中的所有MySQL表都是带有utf8编码的MyISAM。由于可以在辅助应用程序脱机时生成记录,所以我的表键是随机生成的,字母数字VARCHAR;这些字段被设置为utf8_bin编码的二进制,这样它们就可以区分大小写。我立即开始看到性能问题,在其中一个较大的表上复杂的SELECT查询需要超过一分钟,然后其他查询排队等待表锁。我将该表上主键字段的编码更改为utf8,性能恢复到正常状态。然而,我现在拥有的是:
MySQL [(none)]&
对于Delphi DataSet,有“插入”,“追加”,“编辑”和“删除”命令,但是有没有一种简单的方法来“替换”相同表之间的记录,而不需要知道完整的表结构或主键?在MySQL中,它应该是REPLACE INTO table2 (SELECT * FROM table1),但我想更改目标表中的一些字段,比如员工ID和部门代码。