Mic*_*wan 9 mysql windows memory jdbc configuration
我试图INSERT...SELECT
用 JDBC 在 MySQL 中执行一个相当大的,我得到以下异常:
Exception in thread "main" java.sql.SQLException: Out of memory (Needed 1073741824 bytes)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
Run Code Online (Sandbox Code Playgroud)
由于我实际上并没有返回 ResultSet 对象,因此我认为 Java 堆空间应该不是问题。但是,无论如何我都试图提高它,但没有任何好处。然后我尝试在 MySQL Workbench 中执行该语句,我得到了基本相同的结果:
Error Code 5: Out of memory (Needed 1073741816 bytes)
Run Code Online (Sandbox Code Playgroud)
我应该有足够的 RAM 来完成这些操作(足以容纳我从中选择的整个表格),但我猜我需要调整各种设置以利用我的所有内存。我正在使用Windows Server 2008 AMI运行 Amazon EC2高内存双超大实例。我尝试摆弄 my.ini 文件以使用更好的设置,但据我所知,我可能会让事情变得更糟。这是该文件的转储:
[client]
port=3306
[mysql]
default-character-set=latin1
[mysqld]
port=3306
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
character-set-server=latin1
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=1024M
table_cache=256
tmp_table_size=25G
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_repair_threads = 2
myisam_sort_buffer_size=10G
key_buffer_size=5000M
bulk_insert_buffer_size = 4000M
read_buffer_size=8000M
read_rnd_buffer_size=8000M
sort_buffer_size=1G
innodb_additional_mem_pool_size=26M
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=13M
innodb_buffer_pool_size=23G
innodb_log_file_size=622M
innodb_thread_concurrency=18
innodb_file_per_table=TRUE
join_buffer_size=4G
max_heap_table_size = 10G
Run Code Online (Sandbox Code Playgroud)
那么这只是更改上述设置以更好地适合我的环境的问题吗?如果是这样,我应该使用哪些设置?我是唯一一个使用过这个实例的人;我将它用于涉及大型数据集统计分析的个人爱好项目。因此,我可以自由地让它为我自己的查询消耗所有可用资源。
如果这不是更改这些设置的问题,那么问题是什么?感谢您提供有关如何更好地配置所有内容的任何帮助。
鉴于这是一个 Windows 安装,@DTest 仍然提供了最初的正确方向。
应用以下公式:
大多数人使用这个:
Maximum MySQL Memory Usage = innodb_buffer_pool_size + key_buffer_size + (read_buffer_size + sort_buffer_size) X max_connections
Run Code Online (Sandbox Code Playgroud)
我更喜欢这个:
Maximum MySQL Memory Usage = innodb_buffer_pool_size + key_buffer_size + ((read_buffer_size + read_rnd_buffer_size + sort_buffer_size + join_buffer_size) X max_connections)
Run Code Online (Sandbox Code Playgroud)
这些变量是您需要调整的变量,直到公式产生已安装 RAM 的 80% 或更少。
sort_buffer_size
read_buffer_size
read_rnd_buffer_size
join_buffer_size
max_connections
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
44730 次 |
最近记录: |