标签: percona

如何正确执行 MySQL 烘焙?

我想针对其他一些分支(例如 Percona 服务器、MariaDB 以及可能的其他分支)对 MySQL 服务器 rpm 进行性能测试(又名烘焙)。我希望通过提出这个问题,我可以更好地理解设置适当性能测试背后的方法。我计划使用 sysbench 来运行我的实际测试,但我对任何事情都持开放态度。

  1. 我应该采取哪些步骤来确保测试结果在一个苹果对苹果的比较中并且只有 RDBMS 是变体?
  2. 我从哪里开始?
  3. 我如何评估结果?
  4. 你能给我什么建议?

mysql mariadb performance percona performance-testing

27
推荐指数
2
解决办法
9534
查看次数

Percona 与 MySQL

什么是 Percona?

它与 MySQL 有何不同?

我们什么时候应该考虑从库存 MySQL 切换(或升级)到 Percona?

为了在我们的情况下添加一些细节,我们几乎只使用具有广泛外键约束和一些存储过程的 InnoDB(我知道 Percona 已经做了很多优化)。

我们目前发现 MySQL 对我们的查询优化不佳,因此任何超过 3-4 个连接的查询我们都必须使用 STRAIGHT 连接显式构建以提高性能。

mysql innodb performance percona percona-server

22
推荐指数
1
解决办法
2万
查看次数

MySQL复制从站是否应该设置为只读?

我按照本指南在 Percona Server 5.5 上运行了复制,并想知道我是否应该添加read-only=1到我的从属设备my.cnf以使其只读?

该指南为 mysql 表设置复制,以便复制用户,但我主要使用从属来获取 mysqldumps,在紧急情况下将其重新配置为主,所以我认为我们不需要(或应该)启用写入它不断?

mysql replication percona mysql-5.5

22
推荐指数
1
解决办法
5万
查看次数

为什么默认 character_set_server 是 latin1?

我正在使用 MySQL 5.5,当我显示有关字符集的变量时,我有

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
Run Code Online (Sandbox Code Playgroud)

我是否需要将character_set_database和更改character_set_serverutf8

mysql percona character-set mysql-5.5 utf-8

12
推荐指数
1
解决办法
5万
查看次数

XtraBackup 和 rsync 有什么区别?

是的,我将在他们两个上运行 strace ......但是,我想知道......

  • XtraBackup 在 rsync -ac src dest 之上做了什么?
  • XtraBbackup 有什么特别之处?
  • XtraBackup 如何与 mysqld 交互?

mysql backup percona

11
推荐指数
1
解决办法
5693
查看次数

MySQL 需要在大表和简单的 SELECT 上使用 FORCE INDEX

我们有一个应用程序,它将来自不同来源的文章存储在 MySQL 表中,并允许用户检索按日期排序的文章。文章总是按来源过滤,所以对于客户选择我们总是有

WHERE source_id IN (...,...) ORDER BY date DESC/ASC
Run Code Online (Sandbox Code Playgroud)

我们使用 IN,因为用户有很多订阅(有些有数千个)。

这是文章表的架构:

CREATE TABLE `articles` (
  `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `source_id` INTEGER(11) UNSIGNED NOT NULL,
  `date` DOUBLE(16,6) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `source_id_date` (`source_id`, `date`),
  KEY `date` (`date`)
)ENGINE=InnoDB
AUTO_INCREMENT=1
CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
COMMENT='';
Run Code Online (Sandbox Code Playgroud)

我们需要(日期)索引,因为有时我们在这个表上运行后台操作而不按源过滤。但是,用户不能这样做。

该表有大约 10 亿条记录(是的,我们正在考虑对未来进行分片......)。一个典型的查询如下所示:

SELECT a.id, a.date, s.name
FROM articles a FORCE INDEX (source_id_date)
     JOIN sources s ON s.id = a.source_id
WHERE a.source_id IN (1,2,3,...)
ORDER BY a.date DESC …
Run Code Online (Sandbox Code Playgroud)

mysql innodb index percona

8
推荐指数
1
解决办法
3万
查看次数

在 MariaDB / MySQL 中存储实时时间序列的最佳解决方案是什么?

用例:测量创建给定数量的图像。对于每张图像,我们需要存储一小组质量指标(浮点数、双精度数)以及图像整数 [1 ...N]、时间戳和一个或两个外键值。然后应该在 Web 应用程序 (PHP) 中“实时”绘制它以供用户评估。

每个 Web 客户端每 5 秒轮询一次数据库。理想情况下,每组质量指标的存储 + 检索应该花费 < 2 秒(大约)。在最坏的情况下,可能有大约 30 个同时进行的 Web 客户端轮询,并且可能同时写入大约 10 个测量值,从而导致大约 30 次的写入突发。每秒1000组质量指标。

在编程语言中,这类数据可能会存储在数组或列表中。由于我不知道在 MariaDB / MySQL 世界中有任何类似的东西,我只是使用一个常规的 InnoDB 表,上面提到的每个值都有一列。这已经有 90 多万行,预计在未来几个月会增长得更快。

InnoDB 总体上是最好的存储引擎,还是我应该考虑其他?最好的做法是在一段时间后存档数据,也许是在处理完所有测量图像后?它会帮助启用压缩,还是会对性能产生非常负面的影响?

mysql mariadb percona

8
推荐指数
2
解决办法
1万
查看次数

query_cache_type = 0 与 query_cache_type = 1

近日,笔者从标准MySQL来移动Percona,并使用了Percona的向导生成my.cnf

但是,我可以看到,默认情况下,生成的my.cnfuse设置query_cache_type = 0。(查询缓存被禁用)。

我在服务器上运行的唯一内容是 Wordpress 博客。我的问题是:

  1. 我可以启用查询缓存吗?
  2. 有一些 Wordpress 插件提供数据库缓存。启用查询缓存的结果是否类似?

mysql cache percona

7
推荐指数
1
解决办法
4万
查看次数

如何在 3 节点集群上运行 OPTIMIZE TABLE?

我有一个 3 节点 Percona XtraDB 集群,根据mysqlcheck,其中一些表已损坏(一些索引包含错误的条目数):

mydb.mytable
Warning  : InnoDB: Index 'foo' contains 1393929 entries, should be 1393918.
Warning  : InnoDB: Index 'bar' contains 1393921 entries, should be 1393918.
error    : Corrupt
Run Code Online (Sandbox Code Playgroud)

OPTIMIZE TABLE在集群上运行的最佳实践是什么?

我在没有用户的测试环境中做了一些实验,似乎OPTIMIZE TABLE一个节点上的an不会自动将其影响传播到其他节点。这与此命令修改索引和表的存储空间,而不是其内容或其定义的事实一致。

  • 在每个节点的生产环境中运行命令,让它在下一个节点中运行之前完成它可能有什么缺点?

  • 考虑到 MySQL(和 Percona XtraDB Cluster,据我所知)不支持分布式表锁,这对用户会有什么影响?这会使集群处于不一致的状态吗?

mysql optimization percona corruption xtradb-cluster

7
推荐指数
1
解决办法
3581
查看次数

如何以小时为单位设置 MySQL binlog 保留时间?

我的情况是 MySQL 日志分区在不到一天的时间内就被填满了。我无法禁用二进制日志,因为我需要它们进行复制。

我知道我可以设置日志保留时间,但它接受天数,搜索只显示我这个https://serverfault.com/questions/179165/can-expire-logs-days-be-less-than-1-day-in -mysql问题,建议通过脚本自己完成。

由于这个问题已经有将近 8 年的历史了,我想知道现在是否有可能。

如果重要,我正在使用 Percona MySQL 5.7

mysql percona mysql-5.7

7
推荐指数
1
解决办法
2万
查看次数