我试图在SQLite数据库中存储无符号8位整数的列表。我正在使用在Windows上运行的Python3.4。当我保存1000个数字的列表时,我希望数据库文件比我的机器上大约2KB的空数据库大1KB左右。
文件大小似乎增长到10KB,使得数据看起来像是以8字节的数字存储。该表使用'INT1'或'TINYINT'类型说明符创建。
是否有特定方式对数据进行格式化,或者.db文件大小与存储的数据不成正比?在我的最终应用程序中,我将有数十亿行无符号整数(和40列),我想估计数据库的文件大小。
import sqlite3 as sq3
import numpy as np
conn = sq3.connect('test_db.db')
c=conn.cursor()
c.execute('''CREATE TABLE data_3 (int_data TINYINT)''')
list_=np.zeros((1000,1),dtype='uint8')
c.executemany('''INSERT INTO data_3 VALUES(?)''',list_)
conn.commit();
zzzz=c.execute('SELECT * from data_3 ')
list_1=(zzzz.fetchall())
print(len(list_1),list_1[0])