我有一个客户,中间,项目类型数据库。
客户可以购买许多商品,这些商品存储在“中间”表格中,只有两列包含customerid
和itemid
。
我目前正在为所有牌桌使用myisam。
是否建议在此结构中使用Innodb作为中间表?
答案 0 :(得分:1)
在这种情况下我更喜欢InnoDB,因为:
InnoDB应该用于数据完整性优先的地方,因为它通过关系约束和事务的帮助固有地处理它们。 写入密集型(插入,更新)表更快,因为它使用行级锁定,只保留对插入或更新的同一行的更改。
虽然
MyISAM设计和创建更简单,因此对初学者来说更好。 不用担心表之间的外来关系。 由于结构更简单,整体上比InnoDB更快,因此服务器资源的成本更低。 全文索引。 特别适合读取密集型(选择)表。
比较非常简单。 InnoDB更适合需要频繁插入和更新的数据关键情况。另一方面,MyISAM在不完全依赖数据完整性的应用程序中表现更好,而且大多只选择并显示数据。
希望这有帮助。
答案 1 :(得分:0)
INNODB支持foreign key constraints,包括级联删除,在联结表中非常有用。
级联删除(简单地说)允许您的架构自行清理。
如果您的联结表使用带有级联删除的外键约束,并且您删除了customer
或item
记录,则匹配的middle
记录将被删除,因此它不会成为孤儿。
我绝对推荐INNODB
答案 2 :(得分:0)
Innodb让您定义很酷的外键。
从那里你会有一些功能:
通常,使用foregin-keys会尽早决定:那些foregin-key需要额外的代码限制 - 即,如果没有客户或项目,您可能无法插入中间键。