我有一个客户,中间,项目类型的数据库。
客户可以购买许多商品,这些商品存储在“中间”表中,只有两列,分别是customerid和itemid。
我目前正在对所有的表使用myisam。
这个结构的中间表是否推荐使用Innodb?
发布于 2011-11-11 18:16:05
在这种情况下,我更倾向于使用InnoDB,因为:
应该在数据完整性优先的地方使用InnoDB,因为它本质上是通过关系约束和事务来处理它们的。在写密集型(插入、更新)表中速度更快,因为它利用行级锁定,并且只保留对插入或更新的同一行的更改。
同时,
MyISAM更易于设计和创建,因此更适合初学者。不用担心表之间的外部关系。由于结构更简单,总体上比InnoDB更快,因此服务器资源的成本要低得多。全文索引。尤其适用于读密集型(select)表。
这种比较非常简单。InnoDB更适合于需要频繁插入和更新的数据关键情况。另一方面,MyISAM在不太依赖于数据完整性的应用程序中表现得更好,主要是选择和显示数据。
希望这能有所帮助。
发布于 2011-11-11 18:13:06
INNODB支持foreign key constraints,包括级联删除,这在连接表中非常有用。
级联删除(简单地说)允许您的模式在自我清理之后进行清理。
如果连接表使用带有级联删除的外键约束,并且您删除了customer或item记录,则匹配的middle记录也将被删除,这样它就不会成为孤立记录。
我绝对推荐INNODB
发布于 2011-11-11 18:20:16
Innodb可以让你定义很酷的前置键。
在此基础上,您将拥有一些特性:
如果存在依赖项,too.
通常,使用前景键很早就决定了:这些前景键需要额外的代码限制-也就是说,如果没有客户或项目,您可能无法插入中间。
https://stackoverflow.com/questions/8092445
复制相似问题