使joomla使用innoDB并支持事务

时间:2009-12-13 06:01:15

标签: database transactions joomla innodb

我是joomla的新手,刚刚发现它默认使用myISAM数据库引擎。

我已经搜索了joomla论坛和扩展目录,甚至在谷歌但没有得到有用的结果。由于joomla是一个如此大的社区,我不确定为什么似乎没有人能够得到答案。

我想知道是否有任何众所周知的发行版/扩展版将使joomla使用innodb,以便它可以支持事务。

如果没有,我仍然想知道如果必须这样做会有多困难。

4 个答案:

答案 0 :(得分:3)

您可以随时转到installation/sql/mysql/joomla.sql并在安装Joomla之前将TYPE=MyISAM的所有实例更改为TYPE=InnoDB。但是,核心Joomla组件中没有任何利用事务的查询。虽然您可以编写自己的组件来执行此操作,但核心Joomla功能仍然不会。此外,如果您还没有注意到,核心Joomla组件将“锁定”某些表的行。它通过设置一个标志来指定当前正在编辑该项目的用户的ID。不太理想,但当人们使用非事务性数据库引擎时,它有助于避免冲突。

答案 1 :(得分:1)

我不太确定强制使用db引擎类型是有意义的。允许安装Joomla的管理员选择引擎类型更有意义。如果没有特别设置,Joomla将采用默认值。您可以通过更改mySQL配置或使用启动参数更改默认存储引擎来更改默认存储引擎。

请参阅:http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html

答案 2 :(得分:1)

在编写Joomla时,InnoDB并不稳定,完全重写它可能会给某些最终用户带来问题。

答案 3 :(得分:1)

joomla使用InnoDB不支持的FULLTEXT SEARCH索引,只要你将momQL上的joomla与innoDB一起部署,它就会抱怨InnoDB不支持FULLTEXT搜索