使用 IMDbPY 脚本导入 IMDb 文件时出现内存错误

Memory error while importing IMDb files using IMDbPY script

使用 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

这是在 Ubuntu14.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

两者都因相同的内存错误而失败。有人知道解决方法吗?

更新(6/20/2015):

它总是在同一点产生这个内存错误。这是正在填充的标题 table 的 MySQL table 状态。

|名称 |发动机 |版本 | Row_format |行 | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment

|标题 |我的ISAM | 10 |动态 | 2699999 | 83 | 226543136 | 281474976710655 | 32410624 | 0 | 2700000

而imdbpy2sql.py的内存使用率在62%左右。我不是 Python pseron,所以不确定如何调试它,所以任何输入都将不胜感激。

我担心 1 GB 的总 RAM 不足以 运行 imdbpy2sql.py 安全。也许您可以尝试使用不同的实例或向您的系统添加交换文件(这显然会降低一切速度)。