之前用 MySQL 存储 Web 日志时想到的一个问题。
有些字段例如 method,总共才 GET、POST 等几种可能,因此能用 enum 类型。但像域名、路径这类,虽然存在大量重复的值,但由于是不固定的,显然不能用 enum 而只能存原始值。
不知数据库底层对于大量重复的值,会不会只存储一份,然后通过引用的方式存储?
还是只能通过人工来优化?比如新建一个表专门存放 <id, 域名>,然后原始表只存 id,这样倒是能让重复字段只占极小的字节,不过这个过程应该在数据库底层实现比较好吧。
有些字段例如 method,总共才 GET、POST 等几种可能,因此能用 enum 类型。但像域名、路径这类,虽然存在大量重复的值,但由于是不固定的,显然不能用 enum 而只能存原始值。
不知数据库底层对于大量重复的值,会不会只存储一份,然后通过引用的方式存储?
还是只能通过人工来优化?比如新建一个表专门存放 <id, 域名>,然后原始表只存 id,这样倒是能让重复字段只占极小的字节,不过这个过程应该在数据库底层实现比较好吧。