开发还可以怎么优化?

2016-05-20 07:22:30 +08:00
 mhtt
目前我们用 PHP+Mysql 来开发,因为需求一些变化, Mysql 中会不断的增加表,在一些表中增加键值,除了上 NOSQL 外,还有什么办法优化解决这一痛苦?
2338 次点击
所在节点    问与答
19 条回复
WildCat
2016-05-20 07:25:01 +08:00
migration?
hpeng
2016-05-20 07:34:29 +08:00
MySQL 我是用 Json 加虚列。然而痛苦并没有减少多少。
yyfearth
2016-05-20 07:45:58 +08:00
用 EAV 模式可以从一定程度上解决这个问题 不过会导致整体复杂度大幅增加
而且没办法用外键约束 join 起来也麻烦很多
说白了就是吧 MySQL 当作 NoSQL 用

@hpeng 用 Json/xml 可以保存一些不重要不需要索引的列 否则就一定要增加新列了
JSON 里面的数据普通的查询都没办法 更不要说排序索引了
mhtt
2016-05-20 07:46:38 +08:00
@WildCat nosql?
@hpeng 嗯。
dxwwym
2016-05-20 07:50:00 +08:00
@mhtt 魔性的头像
hpeng
2016-05-20 08:11:12 +08:00
@yyfearth 你肯定没用过 5.7 以上的
yyfearth
2016-05-20 08:30:06 +08:00
@hpeng 不要说 5.7 了 生产环境还是 5.3 少数 5.4 PHP 还是 5.2.x 的
就算有新功能也不能用啊
jarlyyn
2016-05-20 08:34:07 +08:00
Json
armoni
2016-05-20 09:11:20 +08:00
开发过程中就加,正式上线后还增加字段就用自定义字段的办法去做
sujin190
2016-05-20 09:19:57 +08:00
其实我想知道, nosql 中没有固定格式,你们数据读出来之后如何知道当前数据格式呢?难道要判断版本然后一版本一版本兼容?多改几个版本你们还记得最早的数据结构为什么是这样的么?
mahone3297
2016-05-20 09:41:16 +08:00
加就加呗,问题在哪里?
Evovil
2016-05-20 12:37:33 +08:00
@sujin190 so 你可以使用一些可以向下兼容各种版本的序列化方案 :- > Google Protobuf.
或者自己做向下兼容的序列化方案(比如反射)
fork3rt
2016-05-20 13:04:43 +08:00
遇到同样问题,最后是 MySQL+MongoDB
sujin190
2016-05-20 14:26:22 +08:00
@Evovil 这是存数据库的。。你这样搞怎么查询,怎么用索引
changwei
2016-05-20 14:57:52 +08:00
@hpeng 你还要考虑到 php 在进行 json_decode 的效率损失啊,本身 php 执行这种字符串操作运算效率就不是很高
hpeng
2016-05-20 15:25:58 +08:00
@changwei 我没写过 php 噢,写 java 的。
cxbig
2016-05-20 15:54:02 +08:00
正常不过,你要是玩过 Magento 就知道,新装 300+table ,其中经常打交道的 150+。
mhtt
2016-05-20 16:05:28 +08:00
@fork3rt 主要是我不想用 nosql 的想法太强烈了
@cxbig 难道这样,不感觉痛苦?
cxbig
2016-05-20 16:31:04 +08:00
@mhtt
RDBMS 虽然表会很多,设计上需要花的心力也多,但是数据操作比较稳定。
NoSQL 在数据结构上自由度很高,但是一些特定条件的键值搜索计算上,性能还不及 RDBMS

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/279912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX