- 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/
我关注了 tutorial on creating a popup for an add-on在 Firefox 中,效果很好。 我现在遇到的问题是它创建的弹出窗口不会更改大小以适应我添加到其中的内容
我有一些视频,我需要连接一个标题并添加一些覆盖,问题是我需要先做覆盖,否则时间不正确,然后才将标题连接到视频的开头 ffmpeg -i talk.mp4 -i start_pancarte.png
我正在尝试附加一个 CSV 文件。这是我正在使用的线路。不幸的是,我找不到 export-csv 的附加选项。任何想法都有助于使其发挥作用。 Get-ADGroupMember "Domain Adm
我正在努力理解 Attach API (com.sun.tools.attach.*) 的用途。它的典型用途是什么?它是为了“模拟”JVM,以便您可以在不部署/启动代码的情况下测试您的代码吗?它是一个
我不明白为什么这不起作用。 soup_main = BeautifulSoup('FooBar') soup_append = BeautifulSoup('Meh') soup_main.body.
我有以下代码来返回我想要的字符串 $sql = " SELECT `description` FROM `auctions` WHERE `description` REGEX
我正在尝试从数组中附加具有多个值的元素,但我做错了。这是我的代码: for(var i=0; i ` + pricesArray[i].start_date ` ` + pricesArray[i
我正在尝试将图像链接添加到此 javascript 附加表中。使图像位于按钮上方 这是代码 $("#1").append(""+section+""+no+""+price+""+button+""
我有一个问题,我已经解决了,但它太烦人了。 我有一个 js 代码,当使用“追加”按下按钮时,它会放下一些 html 代码,并且通过该代码,我为 x 按钮提供了一个 id,并为容器元素提供了一个 id。
我想逐行读取文件,并且每一行可能都有很多字符。 这个版本的readline效果很好 func readLine(r *bufio.Reader) ([]byte, error) { var (
我有一个网站,每次用户登录或注销时,我都会将其保存到文本文件中。 如果不存在,我的代码在附加数据或创建文本文件时不起作用。这是示例代码 $myfile = fopen("logs.txt", "wr"
我正在尝试使用 typescript 和 Formik 创建一个自定义输入字段。我可以就完成以下代码的最佳方式获得一些帮助吗?我需要添加额外的 Prop 标签和名称......我已经坚持了一段时间,希
我有一个字符串 big_html,我想将它添加到某个 div 中。我观察到以下方面的性能差异: $('#some-div').append( big_html ); // takes about 10
如何使用 FormData 创建以下结果 ------WebKitFormBoundaryOmz20xyMCkE27rN7 Content-Disposition: form-data; name="
有没有办法附加 jQuery 事件处理程序,以便在任何先前附加的事件处理程序之前触发该处理程序?我遇到了this article ,但代码不起作用,因为事件处理程序不再存储在数组中,而这正是他的代码所
我正在开发一个需要网络登录的 iPhone 应用程序。像往常一样我打电话 [[UIApplication sharedApplication] openURL:loginURL]; 这将关闭应用程序并
我想开发一个仅针对特定域激活的扩展。 我不希望它在不浏览此特定域时出现在浏览器菜单中。 有可能这样做吗? 最佳答案 可能:对于菜单,您可以添加一个弹出窗口侦听器,用于检查当前加载的URL(docs f
这段 JavaScript 代码 function writeCookie(CookieName, CookieValue, CookieDuration) { var expiration
我正在使用 Handlebars 来渲染使用ajax从本地服务器获得的信息。我的 HTML 看起来像: {{#each Tabs}}
我尝试了以下代码,但当输入框中没有数据时它不会通知。当我直接添加此内容(不附加)时,它会起作用。我在这里做错了什么 var output = "\n"+ "\n"+
我是一名优秀的程序员,十分优秀!