NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
ZH

数据库比较

MySQL:默认数据库,仍在盈利

MySQL 是大多数 Web 运行的数据库,不是因为它令人兴奋,而是因为它是可预测的:InnoDB 的 ACID 核心、每个管理员都接触过的复制模型,以及构建在其之上的面板、插件和应用程序假设的生态系统。重要的工作在于默认配置、复制规则以及了解版本 8 的复杂性到底在哪里。

要点

  • InnoDB 是重要的存储引擎:集群主键、行锁定和崩溃安全重做恢复;推荐引擎交换的 MyISAM 遗留文章通常早于现代 MySQL 堆栈 99% 是 InnoDB 的现实,并且对此更满意。
  • MySQL 8 通过真正的功能赢得了升级的痛苦:窗口函数、CTE、改进的 EXPLAIN FORMAT=TREE、通过 JSON_TABLE 进行 Hermes 级 JSON 处理; MariaDB 分叉的功能优先营销的流量已经大大缩小。
  • 复制是职业成败的关键:基于 GTID 的设置使拓扑(链、多源)可管理,半同步作为性能和持久性之间的折衷,并且必须测量读取副本延迟而不是假设(pt-heartbeat 式检查或基于 Performance_schema 的延迟)。
  • 性能工作从慢查询日志加上 Performance_schema 开始:语句摘要、索引使用和模式优先索引击败了每个神奇的 my.cnf 参数列表;缓冲池大小与工作集的大小才是真正重要的旋钮。
  • 恢复备份:针对小型资产的基于转储的工作流程(mysqldump --single-transaction)、针对速度的物理快照(Percona xtrabackup-class)以及始终针对真实中断计划(而不是文档网格)进行测试的时间点恢复。
  • MySQL 的默认状态不断获胜:应用程序生态系统采用它,面板交付它(通常替换为 MariaDB),云运营商以低廉的价格提供它,CMS 插件生态系统(尤其是 WordPress)首先对其进行测试;保持默认意味着保持测试。

一线手记

我所见过的最好的 MySQL 性能工作并不是一场配置调优马拉松:而是一名开发人员删除了与一个 OLTP 表争夺写入吞吐量的三个索引。取消基准测试从慢速查询摘要开始,而不是从博客文章开始。

常见问题

MySQL 8 或 MariaDB 用于新项目?

没有生态系统限制的新项目:MariaDB 是一个很好的默认设置,但 MySQL 8 具有供应商生态系统、安全补丁和复制操纵。比较您实际需要的功能,请阅读我们的 mysql-vs-postgresql 文章以了解相关问题。

将现有 MySQL 切换到 MariaDB 是否需要更改?

跨二进制格式版本的降级是硬优势:MariaDB 不读取 MySQL 8 的数据字典。逻辑迁移(转储/加载)有效,插件替换在承诺之前需要库存。

半同步复制:值得延迟吗?

它减少静默故障转移数据丢失;经典规则是以异步为基准的两个一致性/性能选择之一。对于大多数拥挤的工作负载,正确的答案是半同步加上经过测试的故障转移,而不是完全同步。

如何阻止单个慢速站点杀死盒子?

每用户资源(共享堆栈上的 CloudLinux db_governor,前面的代理查询限制)加上慢查询规则;数据库本身没有安全带,除非环境给它安全带。

Kinetikatech 如何在数据库比较方面为您提供帮助

说实话,很多团队都是自己先试过才来找我们:用于托管工作负载的数据库引擎选择,在正确性保证、操作权重和实际成本方面进行比较:嵌入式引擎与服务器、MySQL 与 PostgreSQL、SQL 与文档存储,以及不断出现的遗留案例研究。我们的服务器管理和网站速度优化服务就是为了让您不必在数据库比较上交学费:部署、值守与凌晨 3 点的突发状况,都由我们负责。

与工程师交谈

服务器问题?网站被黑?网站缓慢?

严重问题 30 分钟内响应 — 每天 24 小时,每周 7 天。

请求紧急支持 support@kinetikatech.com