用于数据科学工作负载的 MySQL 配置?

标签 mysql performance

我在网上找到的关于调整 MySQL 性能的所有建议都涉及具有大量连接和许多重复查询的生产数据库。这不是我的工作量,相反,我正在使用 MySQL 进行数据调查,我是唯一的用户,数据不会经常更改(仅限批量导入),并且我在任何给定时间可能拥有的连接数是< 20. 我拥有的数据很大(数百个演出,具有 5000 万行的表,其中包含一堆字符串),但我编写的查询很少每次运行超过几次。

我有 O'Reilly Schwartz 等人。关于 MySQL 的书,它是理解如何使某些东西(如索引)对我有利的工作的天赐之物。然而,我对这种工作负载的服务器参数感觉不太舒服,因为我在网上找不到几个例子。以下是我运行时使用的非库存(MySQL 5.5、Ubuntu)参数:

max_heap_table_size=32G
tmp_table_size=32G
join_buffer_size=6G
innodb_buffer_pool_size=10G
innodb_buffer_pool_instances=2
sort_buffer_size=100M

我的服务器是一台多核(四核,似乎浪费在 MySQL 上,但有时我会同时处理几个查询)32GB RAM 机器。现在看来 MySQL 将自己限制为 12GB 的内存,可能是因为 innodb_buffer_pool 大小。我将 tmp_table_sizeheap size 设置得非常理想,因为我一直在做一些查询,而我在内存中存储了很多内容。

是否有任何好的资源可以调整 MySQL 以适应这种工作负载?关于我应该为 innodb 设置哪些参数有什么建议吗?

最佳答案

我认为您不必再​​调整 InnoDB 引擎的性能了。真正的性能提升将体现在您构建表的方式和您编写的查询中。确保您选择的列已编入索引,选择了合理的主键等。只要您有一个好的主键,具有 5000 万行的表应该不是问题。

如果您还没有遇到任何性能瓶颈,那么我认为没有理由担心。

关于用于数据科学工作负载的 MySQL 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439392/

相关文章:

sql-server - TDE 启用对数据库性能有何影响?

javascript - 什么对性能更好 : event for each element or one event with delegation?

mysql - "Column count doesn' t 匹配行中的值计数“但确实如此

mysql - 如果 first 为假,MySQL 是否运行所有 WHERE 条件

php - '(value)' 中的未知列 'field list'

python - Django通过外键查询订单(反方向)

MySql 组合(嵌套)查询和使用 Join 方式的查询比单独查询慢

mysql - 哪个数据库最适合 Magento

python - 在 python 中运行 mySql 命令

java - 在 Spring 中更改数据库