我有一张桌子 -
CREATE TABLE `DBMSProject`.`ShoppingCart` (
`Customer_ID` INT NOT NULL,
`Seller_ID` INT NOT NULL,
`Product_ID` INT NOT NULL,
`Quantity` INT NOT NULL,
PRIMARY KEY (`Customer_ID`,`Seller_ID`,`Product_ID`));
此表比更新操作有更多的插入操作和删除操作。 哪种存储结构最适合减少整体操作和访问时间?我不确定Hash结构和B + Tree结构和ISAM之间的关系。 PS - 数量或记录大约为1000万
答案 0 :(得分:0)
对于购物车,数据完整性比原始速度更重要。
MyISAM不支持ACID事务,也不强制执行外键约束。使用您显示的所有ID号,我不会继续使用不强制执行外键约束的引擎。
总的来说,我赞成测试而不是猜测。您可以构建表,使用1000万行随机(ish)数据加载它们,以几种不同的方式对它们进行索引,并在几个小时内使用代表性SQL语句运行时序测试。如果可能,请使用类似的硬件。
当涉及索引时,您可以删除它们并添加它们而无需重写任何应用程序代码。如果你不能打扰测试,只需选择一个。稍后,如果您遇到explain
建议可能与索引相关的性能问题,请删除它并创建另一个。 (在你这样做了几次之后,你可能会发现你可以节省时间进行测试。)