首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在提供查询时优化MariaDB数据库

如何在提供查询时优化MariaDB数据库
EN

Database Administration用户
提问于 2016-04-17 07:33:09
回答 2查看 7.5K关注 0票数 2

我们希望在我们的MariaDB数据库上运行一个优化,同时仍然允许它提供查询。

我发现对于MySQL来说,这是可能的,因为5.7.4 (来自此链接)

对于5.7.4之前的InnoDB表和其他表类型,MySQL在运行优化表期间锁定表。从MySQL 5.7.4开始,对常规的和分区的InnoDB表在线执行优化表。

有没有人知道我们也能为MariaDB做这件事呢?我在MariaDB优化页面没有看到任何提及。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2016-04-17 13:02:48

您想优化MariaDB表还是要在MariaDB上运行优化表?因为这两件事没有任何关系。

一般来说,优化并不像运行命令那么容易--您需要分析服务器、分析查询、更改架构、检查配置、正确选择、维度和配置硬件和操作系统,并从应用程序中高效地使用它。

优化表是-to总结的命令--对于MyISAM和InnoDB MySQL/MariaDB引擎来说,它破坏了您的表--在大多数情况下对性能没有真正的影响,尽管它可以在某些情况下节省空间。请不要定期执行优化表,在大多数情况下它没有用。,同时为服务器创建大量工作(基本上是重新创建表)。

Online alter只能在MySQL >=5.6+和MariaDB的等效版本上使用。OPTIMIZE TABLE基本上是为InnoDB表运行ALTER TABLE <table> ENGINE=InnoDB,众所周知,它可以是自5.6.17以来在线访问MySQL。对于MariaDB 10+,我不能肯定,因为它将取决于确切的版本,但这就像强制它使用LOCK=NONE参数联机一样容易检查,否则会立即失败。

如果由于任何原因无法在线运行表碎片整理,则始终可以使用pt-联机模式 change并执行null操作,这将在没有(几乎)任何锁定的情况下复制新表。

票数 4
EN

Database Administration用户

发布于 2018-01-10 20:49:34

还没有记录,但是

代码语言:javascript
复制
ALTER TABLE t ENGINE=InnoDB, ALGORITHM=INPLACE;

确实起作用

(这里还有一个开放的https://jira.mariadb.org/browse/MDEV-10453主题bug )

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/135546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档