在MySQL数据库中存储数组的最佳方法?

gor*_*dyr 25 mysql arrays

我的部分应用包括歌曲的音量自动化.

卷自动化按以下格式描述:

[[0,50],[20,62],[48,92]] 
Run Code Online (Sandbox Code Playgroud)

我认为这个数组中的每个项目都是一个'数据点',第一个值包含歌曲中的位置,第二个值包含0-100的音量.

然后,我获取这些值并执行客户端功能,以"虚拟"数据点插入此数据,以创建贝塞尔曲线,从而在播放音频文件时允许平滑的音量转换.

但是,需要允许用户将该自动化保存到数据库中以便以后调用.

数据点可以是无限的(虽然实际上绝不应该超过40-50左右,大多数都不到10)

我该如何处理数据呢?它应该按原样存储在文本字段中吗?或者我应该事先以某种方式处理它以获得最佳效果?

在MySQL中最好使用哪种数据类型来存储数组?

Mik*_*ail 43

绝对不是一个text领域,而是一个varchar- 或许.我不建议解析结果并将它们存储在单独的列中,除非您想要利用数据库意义上的数据 - 统计数据等.

如果你从未看到自己问"用户使用的平均音量是多少?" 然后不要费心解析它.

要弄清楚如何存储这些数据,请问自己"以后如何使用它?" 如果您将获得该数组并需要使用它,您可以使用序列化功能.如果您将使用JavaScript中的值,那么JSON编码可能最适合您(加上许多语言都知道如何解码它)

祝好运!

  • `text`旨在存储实际文本 - 如故事或诗歌.它不是为存储字符串而设计的.在MySQL文本中存储文件而不是"树叶".关于它的一切都比较慢,搜索,索引,缓存. (2认同)

Her*_*ine 6

我建议你看看 JSON 数据类型。通过这种方式,您可以以比 text 或 varchar 更有效的方式存储数组,并且您可以直接从 MySQL 访问您的数据,而无需解析整个内容。

看看这个链接:https : //dev.mysql.com/doc/refman/5.7/en/json.html