繁体   English   中英

将Joomla表引擎更改为InnoDB

[英]Changing Joomla tables engine to InnoDB

我用JAVA编写了一个应用程序,可将文章添加到Joomla网站。
我的问题是在插入的物品需要五个查询来运行(添加物品content表,在插入对应节点到assets表,在更新其他节点assets表&设置资产ID插入文章); 并且由于我的JAVA应用程序在远程计算机上运行,​​因此很多问题都会使这些查询中的任何一个失败,并且如果其中任何一个失败,整个assets表就会中断。
我考虑过使用事务和手动提交来解决此问题,但Joomla的存储引擎(MyISAM)不支持事务。 因此考虑将这两个表的存储引擎转换为“ InnoDB”。
这个对吗 ? 它是否会给Joomla带来问题(例如,在与其他使用MyISAM的表进行联接时)? 它会影响网站并使其变慢吗?
还有其他解决方案(例如,将所有5个查询发送到服务器以按顺序运行)吗?

谢谢

一些想法:

  1. 我不确定,但我认为Joomla与InnoDB无关。 当在JOIN中联接MyISAM和InnoDB表时,MySQL在内部将InnoDB转换为MyISAM。 但是我不是Joomla的家伙,我仍然不确定

  2. 为什么不使用触发器-对content进行AFTER INSERT触发器?

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

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

希望以上是合理的!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM