我正在寻找一种方法,在一个查询中将数据插入到两个数据库表中,如果其中一个失败,两个表都不会保存(我不想要孤立的数据)。我遇到了一个堆栈溢出问题,它向我展示了如何使用BEGIN...COMMIT来实现这一点,但它根本不起作用。INSERT INTO content_subpages (title, url_referer) VALUES ('TESTING','testing'); ' at line 2
这是我第一次使用BEGIN如果我可以轻松地在不使用BEGIN.
我在MyISAM上有一个相当大(300 on )的表,我已经将它“转换”为InnoDB,并且对于特定查询的性能已经下降。当我说“转换”时,我不能让表离线几个小时来运行ALTER语句,但是其中的大多数数据都是旧的,所以我实际上将现有的表重命名为table_archive,然后从旧表的模式创建一个新的表。新的索引与旧的索引相同。
有一个特定的查询过去运行不到一秒,现在需要很多分钟--有时超过30分钟,但是解释仍然显示它只访问少量行,并且仍然使用索引。-----------+---------------+--