如何设置它以提高速度和可伸缩性是非常困难的。
基本上,我有一堆帖子,取决于它的类型,它可能有不同的输入值,我需要存储。因此,我想的是将公共值一起存储在一个“post”表中,并将Type特定值存储在单独的Type特定表中.这是可伸缩的吗?尤其是当我想拉所有帖子的时候?
我的想法如下:
表:
posts:
id, type_id, commonValue1(varChar), commonValue2(int), commonValue3(boolean), commonValue4(boolean)
Type1:
id, post_id, Type1SpecValue1(varChar), Type1SpecValue2(int), Type1SpecValue3(boolean)
Type2:
id, post_id, Type2SpecValue1(int), Type2SpecValue2(varChar)
Type3:
id, post_id, Type3SpecValue1(varChar), Type3SpecValue2(int), Type3SpecValue3(int), Type3SpecValue4(boolean), Type3SpecValue5(varChar)这显然会随着时间的推移而扩大,我会增加更多的类型.有什么想法吗?另一个想法是,我只需创建包含所有值(甚至是公共值)的不同类型表,然后就有一个posts表,以便在需要提取多个类型时使用?关于如何设置这件事的想法?
-最新消息
为了澄清这些特定的值,可以是int、varchar等等,否则,我会用items表做很多事情,但我不认为这将适用于不同的字段类型。
发布于 2016-05-18 08:11:05
您可能需要考虑在posts表中使用一个JSON字段来将所有复杂的细节存储在JSON对象中。您可以拥有任意数量的数据,包括数组和嵌套对象。
此时,MySQL并不擅长索引和访问/操作JSON数据,但它确实提供了几个函数,如JSON_OBJECT、JSON_ARRAY、JSON_SET、JSON_INSERT、JSON_REMOVE、JSON_REPLACE、JSON_MERGE和JSON_EXTRACT,而且将来的版本肯定会得到更大的支持,例如索引。
MariaDB也有动态柱体,也有比MySQL更好(可能更好)的对JSON数据的支持。
https://dba.stackexchange.com/questions/138838
复制相似问题