如何使用mysqlimport插入压缩数据?

时间:2014-07-05 18:22:27

标签: python mysql

我正在使用mysqlimport(和python)导入一堆记录。为了节省空间,我希望对每个列使用gzip压缩。 mysqlimport是否支持这个?

现在我正在使用StringIO来压缩每一列,然后使用mysqlimport转储行。有更有效的方法吗?从我读过的内容中,StringIO增加了不必要的开销:

# compress each of the columns
for col in d.values():
    stringio = StringIO.StringIO()
    gzip_file = gzip.GzipFile(fileobj=stringio, mode='w')
    gzip_file.write(col)
    gzip_file.close()



#  mysql import script
fh = '/path/to/.sql'
command = ['mysqlimport',
           '--fields-terminated-by=,', 
           '--fields-optionally-enclosed-by="', '-i', '-C',
           '--columns=%s' % ','.join(d.keys()), '--local', fh]
FNULL = open(os.devnull, 'w')
p = subprocess.Popen(command, stdout=FNULL, stderr=subprocess.PIPE)
_, err = p.communicate()

0 个答案:

没有答案