gpt4 book ai didi

php - 专家对 mySQL 表中大量列的意见?

转载 作者:可可西里 更新时间:2023-11-01 07:49:22 26 4
gpt4 key购买 nike

我正在创建一个工具,用于在 CMS 中编辑网页。该工具的主要目标是为用户提供全面的灵 active 。因此,可以在其中编辑大量属性 - 像这样的属性(片段):

langbutton_menu_border_color_left 
langbutton_menu_border_width_left
langbutton_menu_border_style_left
langbutton_menu_border_color_right

...你明白了。迄今为止,我有 238 个这样的属性,主要是整数和短字符串。我现在必须为数据创建一个 mysql 表。我有几年的 web 开发经验,即使考虑将 238 列放入 mySQL 表中也是绝对的禁忌。但转念一想,我开始思考,为什么不呢?

这对我来说是目前最方便的事情,因为我正在集成这个新工具的 CMS 有一组现成的输入元素,这些元素与单个数据库列连接。存储属性的任何其他方式(例如将它们分组以便将“边框”属性存储在一个字段中)将需要对集合进行巨大的更改,我非常想避免这种情况 - 我在一个大项目中并且每天都在工作和晚上。

我会根据 XML 定义创建和更改表,这样我就可以管理一个包含 238 列的表。存储效率并不重要——页面的预期数量不会超过 50-100。除了使用主键一次加载一个页面外,我不需要对表进行任何查询。

那么,mySQL 专家们,有什么认真反对将这种数据存储在 238 列中的吗?您是否会遇到问题、指数级内存使用量等类似问题?

通常,我会将各种属性翻译成完整的 CSS 字符串,并构建可以解析和处理此类字符串的类——这会大大减少数量。但考虑到时间限制?

最佳答案

理论上,mySQL 现在限制在一个表中的 4096 列(考虑到其他约束,即默认 NULL 值等,稍微少一些)。所以,你有相当大的利润。就我个人而言,在 Web 开发人员中,我尽量保持列数 < 50。我看到有 100 多列的表,它起作用了,但是维护这样的表非常困难。如果您不必在该列上进行搜索,请考虑在 php 数组上进行序列化并将值存储在 TEXT 中。它更快、更灵活。

关于php - 专家对 mySQL 表中大量列的意见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1622262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com