Python 使用django在SQL db中存储672个布尔值的最佳方法是什么?

Python 使用django在SQL db中存储672个布尔值的最佳方法是什么?,python,django,performance,memory,Python,Django,Performance,Memory,我想使用django在sql数据库中存储一个包含672个布尔值的变量。 我使用models.TextField来存储这个变量。我希望使用更少的内存来减少处理时间,所以这是存储此类变量的最佳方法还是另一种方法? 谢谢我建议用一个简单的方法来回答你的问题 >>来自随机导入getrandbits >>>def get_n_bools(n): ... 计数=0 ... 当计数>>从bitarray导入bitarray >>>ba=位数组() >>>ba.扩展(获取布尔(672)) >>>文学

我想使用django在sql数据库中存储一个包含672个布尔值的变量。 我使用models.TextField来存储这个变量。我希望使用更少的内存来减少处理时间,所以这是存储此类变量的最佳方法还是另一种方法?
谢谢

我建议用一个简单的方法来回答你的问题

>>来自随机导入getrandbits
>>>def get_n_bools(n):
...    计数=0
...    当计数>>从bitarray导入bitarray
>>>ba=位数组()
>>>ba.扩展(获取布尔(672))
>>>文学士
“\xdd\xa4\u N\xcb\x94\\\\Q\xf02\x13Ov\xf4\xee=Jw\xef\xcf\x9co\xac”\xa8\xab\x1bam\xc6W[\x94\x125B\x1e\x9a\x85\xe7\x0eQ\xe2\x010\xf4\xad\xad\r\xc1\xef6e\x0b\x0b\x9a\xb7\x79\x83\xf3\xfa\xfa\xb1\xb1\xb1\xb1\x08\xb8\xbc\xb8\xbc
>>>getsizeof(ba.tobytes())
105
使用
tobytes()
并将值存储在一个文件中

旁白: 您应该重新考虑是否有必要以这种方式存储值——也许您可以发布代码以供审阅,并获得有关程序设计的一些反馈

P>也要考虑评论者提出的问题:

  • 为什么该值必须存储为一个变量
  • 您是否在这个过程中过早地优化了您的程序
  • 程序是否已经运行,但确实太慢了,或者运行得很好?程序需要多快
  • 你能用不同的方式设计程序来避免这个问题吗

检查一下将布尔值存储在a中。尝试在此处进行微优化是胡说八道。您分析过您的用例吗?DB真的是瓶颈吗?布尔值代表什么?@Monkpit我想使用djangofields@deets我想优化数据库,因为我会有很多这样的变量
>>> from random import getrandbits
>>> def get_n_bools(n):
...    count = 0
...    while count < n:
...        yield getrandbits(1)
...        count += 1
>>> from bitarray import bitarray
>>> ba = bitarray()
>>> ba.extend(get_n_bools(672))
>>> ba.tobytes()
'\xdd#\xa4_N\xcb\x94\\\\Q\xf02\x13Ov\xf4\xee=Jw\xef\xcf\x9co\xac"\xa8\xab\x1bam\xc6W[\x94\x125B\x1e\x9a\x85|\xe7\x0eQ\xe2\x010\xf4\xad\xa4\r\xc1\xef6e\x0b\x9a\xbb\xb7\xa9\x83\xc3\xfa\xb1\xffUbu\xfe\x10\x8d\x16\xdcS\x808\x99\xc1CQ&N\xd0'
>>> getsizeof(ba.tobytes())
105