- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在寻找堆栈中的建议,但我仍然不能 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/
Java 专家需要您的帮助。 今天我在一次采访中被问到这个问题,但我无法解决。所以我需要一个解决方案来解决这个问题; 反转字符串 Input : Hello, World! Output : oll
目标:单击按钮并将成分作为单独的项目添加到数组中。 当前设置: 这给出:蓝莓芒果柠檬汁 然后我希望能够通过单击按钮将成分作为单独的项目添加到数组中: var allI
如何编写正则表达式来匹配它(参见箭头): "this is a ->'' this is a "test' there is another "test' 第二种情况 /\b'/ Regex Demo
我有一个数组,其中包含有限数量的项目。我想随机删除项目,直到所有项目都被使用过一次。 示例 [1,2,3,4,5] 使用了随机数 5,所以我不想再这样了。使用了随机数 2,所以我不想再这样了。等等..
首先,抱歉,如果这太主观了,我只是不知道还能怎么问/去哪里问。 无论如何,鉴于我最近的所有问题,我准备很快发布一个 Android 应用程序,并且大部分测试都是在我的手机 Droid 上完成的。我真的
这可能不是这个问题的正确位置,如果不合适请随意移动它。我标记为 Delphi/Pascal 因为这是我在 atm 中工作的内容,但这可能适用于我猜的所有编程。 无论如何,我正在做一些代码清理,并考虑将
我像这样分隔了其余 api 的路由。有没有更好的方法来组织路由器?还是我现在的做法没问题? app.js app.use('/api/auth',auth); 应用程序/ Controller /au
我在 2 个单独的工作表中包含以下数据: 表1: A B C D a ff dd ff ee b 12 10 10 12 表2: A B C
我正在使用 jQuery,并在位于单独 HTML 文件中的表中获取了几行。单击时,每一行都会成功重定向到本地 HTML 文件。 (使用window.location) 我想要实现的目标 我想要完成的是
我有重叠背景图像的问题,当它们重叠时会导致阴影比不重叠时更暗,从而产生不均匀的阴影。 我有一个高度灵活的盒子,带有一些透明的背景图像和阴影以创建漂亮的边框。盒子本质上是 3 个元素。 您可以在此处找到
按照正常的微服务框架,我们希望将每个微服务放入其自己的 git 存储库中,然后为 Service Fabric 项目创建一个存储库。当我们更新其中一个微服务时,Service Fabric 项目将仅重
我想将多个片段嵌入到一个指令中。这是我的设置方式。 Everyone Development (3)
我希望在保留原件的同时将多个文件 gzip 到一个目录中(到多个 .gz 文件中)。 我可以使用这些命令来处理单个文件: find . -type f -name "*cache.html" -exe
有没有办法分别知道每个 Eclipse 插件消耗了多少内存? 最佳答案 进行堆转储并使用例如分析它Eclipse Memory Analyser . 如需更多信息,请参阅 Analyzing Equi
我们使用cusrom插件并以这种方式定义脚本(这是一个近似的伪代码): //It is common part for every script (1) environments { "env1"
我在控制台应用程序中托管了一个集线器,并有一个 WPF 应用程序连接到它。它工作得很好。然后我将集线器移到一个单独的项目中,并将主机的引用添加到新项目中。现在我收到 500 错误,没有其他详细信息。
是否可以在单独的 JAR 文件中为 JavaBean 构建类?具体来说,JavaBean 在一个 JAR 文件中具有 Bean 和 BeanInfo 类,而自定义属性编辑器类位于另一个 JAR 文件中
好的,所以我有一个 MAF 应用程序,它在单独的应用程序域中加载每个插件。这非常适合我的需要,因为它允许我在运行时动态卸载和重新加载我的插件。 问题是,我需要能够在子应用域中处理未处理的异常,捕获它,
在参加在线数据库类(class)(针对初学者)时,我注意到一个问题,我必须查找涉及...至少两个不同值的查询...例如, ELMASRI 书中的 COMPANY 数据库指出:查找至少从事两个不同项目的
(首先:我已经尝试了涉及边距、边框等的所有选项。) Link to problematic page. Link to similarly constructed, non-problematic p
我是一名优秀的程序员,十分优秀!