- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们有一个便宜的共享主机网站。
他们有一个 MariaDB 服务器,我想这是很多客户共享的。我们对此运行了一些相当大的查询并获得了快速响应。我们想将托管转移到别处,但我们根本无法让数据库在任何地方都以同样快的速度运行。
我们尝试了一个新的 VPS 服务器,配备 SSD、12 核和 16 GB 内存。查询比共享主机的数据库长 10 倍。(事实上 ,增加核心数量几乎没有什么区别)。我们尝试了 MySQL 和 MariaDB + 我们的主机还设置了 lightspeed、memcache 和 Redis,但它们没有帮助。
对于我一直在测试的特定查询,共享服务器运行大约需要 0.7 秒,新服务器大约需要 8 秒。
我们检查了索引是否就位(EXPLAIN 查询在两者上看起来相同),并且我们确信整个查询没有被缓存,因为对查询的微小更改不会影响速度。输出很小,所以处理速度较慢。
慢速查询时间长且范围广,但实际上是在尝试匹配 ID 保存为 varchar 的行时效率低下。例如。
SELECT post.ID
FROM post
LEFT JOIN meta
ON post.ID = meta.postID
AND meta.key = "ABC"
WHERE post.type = "XYZ"
AND meta.value = "123456";
对慢速查询的 EXPLAIN 显示:
id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
1, SIMPLE, _booking_all_day, ref, "post_id,meta_key", meta_key, 576, const, 71474, Using where; Using temporary; Using filesort
....
我在此处粘贴了每个服务器的显示变量: https://pastebin.com/iW6WL3zC - 快速的共享服务器。 https://pastebin.com/kJGKHyqs - 新的、速度较慢的服务器。
我有相当多的 MySQL 经验,但我不是数据库工程师!这是我第一次使用 MariaDB,所以我不知道是否有我不知道的重要优化。
一个明显的答案是重写错误的 SQL 代码。我们会这样做,但我们需要在有时间之前移动主机。这个问题只是关于为什么相同的查询可能如此不同/尝试让新服务器运行得一样快(甚至更快)的任何建议!谢谢。
最佳答案
..3zC 老的,快的:MariaDB 10.1.27 buffer_pool=18G
..yqs 新的,慢:MariaDB 10.1.37 buffer_pool=128M
innodb_buffer_pool_size
对性能非常重要。您的 10 倍线索是我经常看到的 I/O 绑定(bind)和缓存中的区别。
每台机器有多少内存? buffer_pool 应该是 可用 RAM 的大约 70%。
同时,他们有相同版本的WP吗?
提高 WP 后元性能的技巧:http://mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta推荐的索引更改可能实际上加快了较慢机器中的查询速度,足以匹配较快机器。
关于mysql - MariaDB 服务器运行速度比我们可以复制的任何东西快 10 倍。想法为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53372851/
所以这个有点难以解释,但我会尝试一下: 我有一个带有 .boxes 类的 div。它是一些循环元素的包装。循环元素具有类.box。在这个元素中,还有两个元素。一种是 .box-header 类的 he
我有一个网站,我试图在调整浏览器窗口大小时使其表现得体。例如,我希望在有人缩小浏览器窗口时调整横幅图像的大小。网址是http://www.pfp-consortium.org 顶部的横幅在 CSS 中
我想知道情况,是将所有可能的元素都放在表单中更好,还是在用户需要时立即将元素添加到表单中更好。 我将尝试对其进行更多解释 - 我的表单具有 4 个输入和一个文本区域。然后我提供了可选值(大约 15 -
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
所以我一直在研究我正在构建的一个论坛,并且一直专注于它的一个方面,即如何在不在数据库中存储大量数据的情况下跟踪未读的帖子和通知。在查看了一些解决方案之后,我相信我想出了一个可能适合我需要的解决方案,但
编写一个高质量的软件应该是第一步。现在这是一个移动的目标。(我们有一些类似于 https://stackoverflow.com/questions/3716203/automatic-code-qu
我有一组存储在数组中的二维点。 我需要尽可能多地压缩它。最好是快速,但不要破坏交易,压缩率是目标。规则是: 一个点=一个32位的结构,存储为(x,y),每个坐标2个字节 坐标 = 8 位整数部分和 8
我的一个应用程序从服务器下载数据库。当我将应用程序安装到我的手机上时,它会正确下载文件并加载信息,没有抛出任何异常或任何东西。 但是,当我将 apk 上传到 Android Market Place
我们最近接到一位客户的电话,提示他们网站的页面底部有一些“看起来很奇怪的代码”。我们查看了源代码,发现 templates/master 中附加了大约 800 字节的恶意 javascript 代码。
以编程方式创建系统还原点是“禁忌”吗?我会在执行软件更新之前执行此操作。如果有更好的方法可以仅使用我的软件文件和数据创建还原点,请告诉我。 我想要一种方法,如果在更新期间一切都发生了故障(关闭/终止更
我有一个有很多相关模型的类问题。在我的应用程序的一个页面上,我列出了所有当前问题的摘要,以及来自相关记录的各种信息。最终,这是一个值的散列,然后我将其打印到一个 csv 样式的行中(从这里我将其称为“
我目前正在尝试从 NSClassFromString(NSString *) 方法创建对象。 我希望能够实现的是以下... NSClassFromString(stringType) *pageCon
使用 Intellij 想法,我如何找出使变量可见的原因? 困难时的示例: 假设你看 class A ,你会看到一个变量 something .如果你跳转到源代码,你会看到它是在 trait X 中定
在IntelliJ IDEA的代码样式设置中,没有.gradle文件的任何子类别(例如build.gradle),在“其他文件类型”下,没有任何选项可以修改花括号位置。我没有找到为.gradle文件设
我正在尝试按照here指令运行docker-compose,但它似乎陷入了循环。在安装Docker之前,我能够调出示例站点并进行一些外观上的更改,但是尝试使用docker-compose生成缩略图23
我正在使用 IntelliJ IDEA 12.1.4 来调试 Grails 应用程序。我开始调试 session 大约需要 2 分钟。我想尽可能避免重新启动。 我正在尝试调试一个 Controller
随着 .NET 4.0 的出现,MS AJAX 是否仍占有一席之地,或者您认为 JQuery 是否会扩展以包含 AJAX 的全部功能,并使我们所知的 MS AJAX 变得多余? 最佳答案 请记住,AS
需要帮助运行此示例 Google+ API Quickstart w/C# 应用程序,请使用 VS2015 并按照此处的说明操作:https://developers.google.com/+/web
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我有一个相当“疯狂”的想法,即在我的应用程序中拥有一个“存储过程”设施。基本上,我的应用程序以数据为中心,它可以通过某种形式的 Restful 界面访问数据存储。 我希望拥有以多种方式操作数据(这是一
我是一名优秀的程序员,十分优秀!