相关疑难解决方法(0)

mysql innodb_buffer_pool_size 应该有多大?

我有一个繁忙的数据库,只有 InnoDB 表,大小约为 5GB。数据库在使用 SSD 磁盘的 Debian 服务器上运行,我设置了最大连接数 = 800,这有时会饱和并使服务器停止运行。平均每秒查询约 2.5K。所以我需要优化内存使用,为最大可能的连接腾出空间。

我已经看到建议 innodb_buffer_pool_size 应该高达总内存的 %80。另一方面,我从调整引物脚本中收到此警告:

Max Memory Ever Allocated : 91.97 G
Configured Max Per-thread Buffers : 72.02 G
Configured Max Global Buffers : 19.86 G
Configured Max Memory Limit : 91.88 G
Physical Memory : 94.58 G
Run Code Online (Sandbox Code Playgroud)

这是我当前的 innodb 变量:

| innodb_adaptive_flushing                          | ON                                                                                                                     |
| innodb_adaptive_hash_index                        | ON                                                                                                                     |
| innodb_additional_mem_pool_size                   | 20971520                                                                                                               |
| innodb_autoextend_increment                       | 8                                                                                                                      |
| innodb_autoinc_lock_mode                          | 1                                                                                                                      |
| innodb_buffer_pool_instances                      | 1 …
Run Code Online (Sandbox Code Playgroud)

mysql innodb database-recommendation

217
推荐指数
5
解决办法
37万
查看次数

关于单线程与多线程数据库性能

H2 是一个单线程数据库,在性能方面享有盛誉。其他数据库是多线程的。

我的问题是:多线程数据库什么时候变得比单线程数据库更有趣?有多少用户?多少个进程?什么是触发器?有人有经验可以分享吗?

概括

  • 通常的瓶颈是磁盘访问
  • SSD 速度很快,但很脆弱(必须执行故障程序)
  • 单线程系统上的一个长查询将阻塞所有其他查询
  • 配置多线程系统可能很棘手
  • 即使在单核系统上,多线程数据库也是有益的

performance database-recommendation

63
推荐指数
5
解决办法
8万
查看次数

多核和 MySQL 性能

RAM 的重要性是一个既定的事实,但在 MySQL 使用 CPU 时,关于内核和多线程重要性的资料要少得多。我说的是在 4cores vs 6cores vs 8cores 上运行 MySQL 的区别等等。

不同的存储引擎使用 CPU 的方式不同吗?

mysql performance

38
推荐指数
2
解决办法
6万
查看次数

Percona 与 MySQL

什么是 Percona?

它与 MySQL 有何不同?

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

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

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

mysql innodb performance percona percona-server

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

innodb_flush_method=O_DIRECT vs O_DSYNC 对带有 LVM 磁盘分区的 ext3 的性能影响

在我的一个生产环境中,我们有两个实例在 RedHat 集群上运行,其中一个生产实例与该集群关联。

我们有 125G 主内存,24G InnoDB 缓冲池被 instance1 占用,12G 被 instance2 占用,这与 RedHat 集群无关。数据和事务日志都位于具有 ext3 文件系统的 LVM 磁盘分区上。

为了提高性能和更好的 I/O 吞吐量,我决定更改innodb_flush_methodO_DIRECT.

参考 MySQL 文档:

InnoDB 数据和日志文件位于 SAN 上,我们发现设置innodb_flush_methodO_DIRECT会使简单SELECT语句的性能降低三倍。

提到高性能 MySQL Ver 2 和 3,它表示 InnoDB 开发人员发现使用innodb_flush_method=O_DSYNC. O_SYNCandO_DSYNC类似于fsync()and fdatasync()O_SYNC同步数据和元数据,而O_DSYNC只同步数据。

如果这一切看起来像是没有建议的很多解释,那么建议如下:

如果您使用类 Unix 操作系统并且您的 RAID 控制器具有电池供电的写入缓存,我们建议您使用O_DIRECT. 如果没有,O_DIRECT根据您的应用程序,默认值或可能是最佳选择。

通过谷歌搜索,我得到了这个基准报告:on O_DSYNCvsO_DIRECT

基准报告:
====================
1B …

mysql innodb performance mysql-5.1 redhat

14
推荐指数
2
解决办法
5万
查看次数

MySQL 复制 - 从站一直落后于主站

我正在使用 MySQL-5.1.50 和主从复制设置。

大多数情况下,slave 落后于 master。

当我运行时show processlist;,没有需要很长时间的查询。我也启用slow_log了。但是,它没有发现任何运行缓慢的查询。

从站不断发出警报,指出复制落后于主站几秒钟。有时,滞后时间会增加。

如何诊断问题的原因?

我需要紧急帮助,因为这个问题已经持续了 20 天。

mysql replication mysql-5.1

12
推荐指数
2
解决办法
3万
查看次数

在 Debian 上使用多个内核进行单个 MySQL 查询

我正在运行 MySQL 服务器,以在 Debian 作为来宾操作系统的 VM (VMWare) 上进行测试。来宾有四个模拟 CPU 内核,因此我将 thread_concurrency 设置为四个。

我在大型表上执行昂贵的连接,这可能需要几分钟,但我在来宾操作系统上看到,一次只使用一个核心。无论用于所涉及的表的存储引擎如何(使用 MyISAM 和 InnoDB 测试),都会发生这种情况。此外,在执行这些大型查询时,整个数据库似乎都被阻塞了,我无法并行执行任何其他查询。奇怪的是 htop 显示,用于查询的核心在查询运行时发生了变化!

为什么会发生这种情况?

这是来自SHOW FULL PROCESSLIST;(没有其他查询)的相关条目:

| 153 | root       | localhost | pulse_stocks  | Query   |   50 | Copying to tmp table | 
SELECT DISTINCT * FROM 
`pulse_stocks`.`stocks` sto,
`pulse_new`.`security` sec
WHERE
(sto.excntry = sec.excntry AND sto.stock_id = sec.ibtic) OR
( sto.isin = sec.isin AND sto.isin <> "" AND sec.isin <> "" )
ORDER BY
sto.id
LIMIT 0, 30 
Run Code Online (Sandbox Code Playgroud)

没有其他待处理的查询。另一个有趣的观察是,如果我省略这 …

mysql innodb myisam concurrency parallelism

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

InnoDB INSERT 性能的能力

您好,我正在运行最新版本的 Percona Server。

服务器版本:5.5.24-55 Percona Server (GPL),26.0 版

我有一个10个cpu的盒子有这些特点。

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 16
model           : 9
model name      : AMD Opteron(tm) Processor 6128
stepping        : 1
microcode       : 0x10000d9
cpu MHz         : 800.000
cache size      : 512 KB
Run Code Online (Sandbox Code Playgroud)

它具有 SSD 和 64GB 的 RAM。Innodb 大约为 10GB,因此 innodb_buffer_pool_size 设置为 10GB。

我有一张如下表:

create table TODAY
( symbol_id       integer not null
, openp           decimal(10,4)
, high            decimal(10,4)
, low             decimal(10,4)
, last            decimal(10,4) not null
, volume …
Run Code Online (Sandbox Code Playgroud)

mysql innodb performance percona-server

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

INNODB 性能漏洞在哪里?

我有一个奇怪的问题,我似乎无法解决。我更像是一个网络程序员而不是服务器/数据库管理员,所以我希望这里有人可以帮助我。

情况

我正在开发一个处理大量update,insertdelete请求的系统。因此,我选择 INNODB 作为我的存储引擎,因为它具有行锁定功能。我们每 10 分钟更新 60,000 条记录,使用 Gearman 在不同服务器上并行处理我们的工作。代码是用 PHP 编写的,我们使用的是 Zend Framework。

问题

SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction
Run Code Online (Sandbox Code Playgroud)

我们几乎每 30 分钟就会收到一次上述错误,来自我们的一名 Gearman 工人。

mysql_report

MySQL 5.1.63-0+squeeze1  uptime 15 9:52:12      Tue Sep 11 21:25:23 2012

__ Key _________________________________________________________________
Buffer used    55.00k of  16.00M  %Used:   0.34
  Current       2.92M            %Usage:  18.24
Write hit      99.95%
Read hit      100.00%

__ Questions ___________________________________________________________
Total         122.05M    91.7/s
  DMS         106.63M    80.1/s  %Total: …
Run Code Online (Sandbox Code Playgroud)

mysql innodb performance

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

如何在具有 16 GB RAM 的 QuadCore 机器上充分利用 MySQL?

我在我的工作站上运行 MySQL 5.5 服务器以进行科学数据分析,并想知道如何配置 MySQL 以便在性能方面发挥最大作用。我通常运行的查询类型涉及 10-20 个表的连接,并且可以运行很长时间,一到几分钟也不例外。只有极少数用户同时访问数据库(最多 5 个)。我将服务器从具有 2.2 GHz 双核和 4 GB RAM 的联想 Thinkpad T61 移动到以下带有手工选择组件的全新机器:

  • Intel i7 3770,4x 3.4 GHz(以 4x3.7 GHz 运行)
  • Z77芯片组
  • 16 GB DDR3 1600 内存
  • Windows 7 教授 64 位
  • Windows 和 MySQL 服务器在 Intel 520 系列 SSD 驱动器上运行。

第一次测试(在两台机器上运行相同的查询)显示新机器的速度有了明显的提高,但查询仍然需要很多时间,我原以为会有更多的提升。有问题的查询得到了相当好的优化,即所有表都有适当的键,这些键也被用作“解释扩展”。

现在到我当前的 MySQL 设置:首先我应该提到我很久以前从 MyISAM 转移到 Innodb。

我的一些 my.ini 调整(即偏离默认设置):

# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to …
Run Code Online (Sandbox Code Playgroud)

mysql innodb mysql-5 performance mysql-5.5

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