我实际上是在phpmyadmin上建立一个数据库,我在问自己是否有什么可能,以及如何实现它?
事实上,我正在通过一个网站建立列表,然后将其保存在数据库中,但是这个列表只是由我已经存储在另一个表的数据库中的项目组成的。
我想比一个有 SET
数据类型和所有选定的项目将是一个内存增益和清晰度的提高,而不是创建x行链接到由id列创建的列表。
所以,我要问的问题是,我能为一个列创建这样的集合吗?当我在另一个表中添加项时,它会自动更新吗?如果是的话,我可以通过phpmyadmin接口来完成,或者我必须在mysql服务器上工作。
2条答案
按热度按时间uqdfh47h1#
可以模拟
SET
在一个BLOB
(最大64k位)或MEDIUMBLOB
(最大16m位),但需要一些代码——找到字节,使用&
或者|
,塞回去。在MySQL8.0之前,按位操作(如两个集的anding等)被限制为64位。使用8.0,
BLOBs
可以用那种方法操作。如果你的
SETs
趋向于稀疏,则位号列表(在逗号或表中)可能更紧凑。然而,“字典”对我来说意味着SETs
可能有点密集。如果你在做其他类型的手术,请告诉我们。
yzuktlbb2#
最后,在我的应用程序中不可能使用set数据类型,因为它最多只能存储64个项目,而我将处理大约1000个项目。
我仍然很感兴趣,如果你们中的任何人有一个关于如何做到这一点的想法,因为一个有x次的表(id,wordid#)(见我的情况,在这篇文章的答案部分解释得更高一点)看起来并不是真正的优化和轻量级的选项。
祝你今天愉快:)