gpt4 book ai didi

mysql - 现有 mysql 表或单独表中的附加字段

转载 作者:行者123 更新时间:2023-11-29 00:46:56 26 4
gpt4 key购买 nike

我一直在寻找堆栈中的建议,但我仍然不能 100% 确定改进它的最佳方法。我有一个存储大约 130K 条记录的 mysql INNODB“产品”表。杂项产品数据等大约有 80 个字段,然后我们一直在为每个供应商(成本/编号/库存)添加供应商库存数据字段 x 3,从而产生另外 35-40 个额外字段。

我们通过 loaddata 或用于 xml/xls 提要的 php 脚本将供应商数据提要运行到每个供应商的单独表格中。然后我们运行一个查询来更新产品的成本/库存,相关供应商表中的最新数据与每个表中的 id 匹配。然后对我们的每个供应商饲料(目前大约 15 个)运行此过程,在某些情况下每天一次,在其他情况下每天两次/3/4 次,饲料大小从几百到 1/3/20/30K 不等。

然后,我们运行一个脚本(由于供应商数据源的导入时间表不同,一天运行几次)比较所有供应商的库存(来自主要产品表数据),并根据最低库存的供应商生成价格观点。然后,这会为某处有库存的每个商品更新产品表中的整体最佳产品价格。

更新最佳价格脚本从表中选择在某处有一些库存的所有记录,并在用价格单独更新每个产品之前进行计算。我们遇到的问题是我们在这段时间内速度变慢,有时可能只有一两分钟,但有时似乎需要 5/6 到 10 分钟,具体取决于网站流量等,大概是因为产品表正在更新和重新- 索引,而每次运行最多 20/30 千条记录。

产品表是站点最繁忙的表,当更新运行时,我们看到 CPU 上升到 300/350%。我们正在尝试确定我们最好的选择是否最初是将存储的最佳价格和汇总股票值(value)分开到另一个表中,并在我们提取产品数据时加入该表以解决索引/锁定问题,或者我们是否只是简单地需要迁移到仍然可以处理数据库/网络服务器/电子邮件等的新服务器,或者运行专用的数据库服务器。

重新迁移或新的专用数据库服务器的问题是成本,当服务器以 10/20/30/40% 的 CPU 超出这些缓慢的更新周期时,它是老板的停止点。如果我们要使用数据库服务器,最简单的选择是获取一个新服务器并从该服务器运行数据库,以节省重新安装我们的自定义应用程序/邮件服务器/网站应用程序文件等。如果我们这样做,我们将能够获得远离我们目前拥有的较低规范的服务器,或者我们真的需要考虑数据库服务器是 2 中更好的规范吗?任何帮助或一般建议将不胜感激!!!谢谢。

最佳答案

听起来您的产品表未规范化。如果您不太清楚那是什么意思,仔细阅读。了解这一点对您的成功至关重要。

如果我是你,我会选择这个选项:“将存储的最佳价格和聚合股票值(value)分开到另一个表中,并在我们提取产品数据以解决索引/锁定问题时加入这个表” .也就是说,我认为您应该为产品表和相关供应商信息从非规范化模式切换到规范化模式。

但是,转换需要开发人员的劳动。通常开发人员的劳动力比新的服务器硬件更昂贵。将 mySQL 数据库实例从一台服务器机器迁移到另一台机器并不难。如果您确实要购买一台新的服务器机器,请购买您能负担得起的最快的磁盘存储子系统。如果您使用 RAID,请选择 RAID 1-0( strip 化和镜像)而不是 RAID 5。除此之外,如果您为新服务器配备 4GB 内存和双处理器或四处理器,应该没问题。

换句话说,购买一台 2012 年生产的普通中端服务器机器,配备良好的磁盘存储子系统。将你的 mySQL 放在新机器上(其他的不要管)。

但是,请仔细考虑您的应用程序需要扩展多少。

此产品表的大小是否已接近几年后的大小?或者您的公司是否计划在未来数月和数年内增加大量新产品和新供应商?如果你必须扩大这个系统,你真的必须选择第一个选项(使用开发人员的劳动力并更改为更好的、规范化的 DBMS 模式)。如果您现在咬紧牙关并进行此更改,您的系统将更容易扩展。

但是,如果您公司的产品线相当稳定,那么花费五或一万美元左右添加一台新服务器是最便宜的方式。

关于mysql - 现有 mysql 表或单独表中的附加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com