我已经看到一些专用的 MySQL 服务器,它们只使用一个内核。我比 MySQL 的 DBA 更擅长开发,所以需要一些帮助
服务器非常庞大,具有 OLAP/DataWarehouse (DW) 类型的负载:
注意:最大的 DB 是从 OLTP DR 服务器复制的 DB,DW 就是从这里加载的。它不是完整的 DW:仅持续 6 个月到 6 周,因此它比 OLTP DB 小。
ALTER TABLE...DROP KEY...ADD INDEX
我正在运行 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 5.5 服务器以进行科学数据分析,并想知道如何配置 MySQL 以便在性能方面发挥最大作用。我通常运行的查询类型涉及 10-20 个表的连接,并且可以运行很长时间,一到几分钟也不例外。只有极少数用户同时访问数据库(最多 5 个)。我将服务器从具有 2.2 GHz 双核和 4 GB RAM 的联想 Thinkpad T61 移动到以下带有手工选择组件的全新机器:
第一次测试(在两台机器上运行相同的查询)显示新机器的速度有了明显的提高,但查询仍然需要很多时间,我原以为会有更多的提升。有问题的查询得到了相当好的优化,即所有表都有适当的键,这些键也被用作“解释扩展”。
现在到我当前的 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) 我计划在 CentOS 6.5 机器上运行我的 MySQL DB ver5.1.73 到 MySQL 5.6.21。
我根据我在 StackOverflow 上阅读的内容了解了此操作的基本过程,但我很好奇是否有人在使用 5.1 到 5.6 路线时遇到任何特定问题?
我听说过的一个是某些 TIMESTAMP 列可能会以不正确的时间戳结束。但我很好奇是否还有其他人听说过或遇到过的。
为了缩小我关心的问题,我只关心可能存在数据丢失或一致性问题的任何事情
谢谢!是
多年来我一直在使用MySQL 5.1.37。
最近发现repository已经不支持这个版本了,需要升级mysql。
我认为更改版本应该是一个复杂的过程,因为my.cnf发生了变化,并且可能随着代码的变化而变化。
问题
mysql ×5
innodb ×3
mysql-5 ×2
mysql-5.1 ×2
mysql-5.5 ×2
performance ×2
upgrade ×2
concurrency ×1
myisam ×1
mysql-5.6 ×1
parallelism ×1
tuning ×1