使用MyISAM存储引擎将IMDb文件导入MySQL 5时出现以下内存错误:
Traceback (most recent call last):
File "/usr/local/bin/imdbpy2sql.py", line 3072, in <module>
run()
File "/usr/local/bin/imdbpy2sql.py", line 2937, in run
readMovieList()
File "/usr/local/bin/imdbpy2sql.py", line 1531, in readMovieList
mid = CACHE_MID.addUnique(title, yearData)
File "/usr/local/bin/imdbpy2sql.py", line 1135, in addUnique
else: return self.add(key, miscData)
File "/usr/local/bin/imdbpy2sql.py", line 1010, in add
self[key] = c
File "/usr/local/bin/imdbpy2sql.py", line 922, in __setitem__
dict.__setitem__(self, key, counter)
MemoryError
这是在Ubuntu 14.0.4上的AWS上的EC2实例,内存为1GB。我首先尝试使用此命令:
imdbpy2sql.py --mysql-force-myisam -d /home/ubuntu/imdb-files/ -u mysql://admin:password@localhost/imdb
还有:
imdbpy2sql.py --mysql-force-myisam -d /home/ubuntu/imdb-files/ -u mysql://admin:password@localhost/imdb -c /home/ubuntu/imdb-files/csv
两者都因相同的内存错误而失败。有人知道解决方法吗?
更新(2015年6月20日):
它总是在同一点产生这个内存错误。这是它填充的标题表的MySQL表状态。
|名称|发动机|版本| Row_format |行| Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | AUTO_INCREMENT
|标题| MyISAM | 10 |动态| 2699999 | 83 | 226543136 | 281474976710655 | 32410624 | 0 | 2700000
imdbpy2sql.py的内存使用率约为62%。我不是Python pseron所以不确定如何调试它所以任何输入都将非常感激。
答案 0 :(得分:0)
我担心1 GB的总RAM不足以安全地运行imdbpy2sql.py。也许你可以尝试不同的实例或在你的系统中添加一个交换文件(这显然会减慢一切)。