将Joomla表引擎更改为InnoDB

时间:2012-03-24 12:37:53

标签: mysql joomla transactions innodb myisam

我在JAVA中写了一个应用程序,将文章添加到Joomla网站 我的问题是插入文章需要运行五个查询(向content表添加文章,将相应的节点插入assets表,更新assets表中的其他节点并设置资产ID插入的文章);因为我的JAVA应用程序在远程计算机上运行,​​许多问题都会导致这些查询失败。如果它们中的任何一个失败了整个assets表格 我考虑使用事务和手动提交来解决这个问题,但Joomla的存储引擎(MyISAM)不支持事务。考虑将这两个表的存储引擎转换为“InnoDB” 它是否正确 ?它不会引发Joomla的问题(例如在与其他使用MyISAM的表的JOINING中)? 它会影响现场并使其变慢吗? 有没有其他解决方案(例如,将所有5个查询发送到服务器以按顺序运行)?

由于

1 个答案:

答案 0 :(得分:1)

一些想法:

  1. 我不完全确定,但我不认为Joomla应该与InnoDB有任何问题。在JOIN中加入MyISAM和InnoDB表时,MySQL内部将InnoDB转换为MyISAM。但我不是Joomla的家伙,我仍然不能确定它

  2. 为什么不使用触发器 - content上的AFTER INSERT触发器?

  3. 您也可以编写一个存储过程来运行所有5个INSERT,但同样不会有任何事务支持

  4. 创建一个表来保存所有5个INSERT查询中的所有数据。当然这张桌子只是间歇性的。现在创建另一个存储过程,然后将该中间表中的所有数据迁移到相应的表。

  5. 希望以上有意义!