1
yulitian888 2018-04-18 08:35:35 +08:00
遇到性能慢了感觉到必须优化了再考虑
百万千万级的,如果是有索引的查询,根本不慢 |
2
johnny23 2018-04-18 08:41:41 +08:00 via iPhone
坐等大佬分析
|
3
tomczhen 2018-04-18 08:44:03 +08:00 via Android
OLAP 和 OLTP 要求不一样,反范式是必要的“妥协”。
|
4
lol173 2018-04-18 08:44:16 +08:00
数据进入某一个状态后应该使用冗余了保存的,例如已经下单的商品、商品的价格等等,索引要用上,数据大了水平分表也应该用上,统计数据做阶段性统计数据表,略略略就这么多了
|
5
shakoon 2018-04-18 09:04:08 +08:00
量级和服务器性能有关,破机器百万级就很慢了,好机器上亿条也能秒级处理。另外我觉得首先是考虑表分区啊,建什么冗余字段
|
6
projectzoo 2018-04-18 09:09:10 +08:00
百万千万现在一般机器都很好吧
自己实测一下不就好咯? |
7
x7395759 2018-04-18 09:38:10 +08:00
冗余字段的设计是有道理的,或许有时候水平分库就是错误的区分
|
8
whypool 2018-04-18 09:46:19 +08:00
同问
不用冗余字段,查询需要 join 多个表,有些数据生成了修改的可能性很小,如果弄到一个表去,一个 select 就出数据了 所以,是严格按照范式设计表么? |
9
Hozzz 2018-04-18 10:42:39 +08:00
看预期值了,你要是一条 sql 进去,10 秒出来能接受,那就没必要考虑这些;要是 1 秒都不能接受,那就可以考虑怎么优化了。
|
10
dbpe OP |
11
dbpe OP 上面表述不清楚,应该是机器性能制胜论
|
12
Cbdy 2018-04-18 14:20:11 +08:00 via Android
范式只是一种设计模式,有优点也有缺点,反范式也有优点和缺点,设计的时候要权衡一下
|
13
hcymk2 2018-04-18 14:32:42 +08:00
冗余字段其实有另外的一个问题, 你得保证你的冗余字段值的正确。
|
14
weizhen199 2018-04-18 14:33:02 +08:00
冗余和索引有点类似的。
牺牲删改时间换查询时间 这东西说实话挺经验的,和模电一样毛估估 |
15
csl1995 2018-04-18 16:42:25 +08:00
索引优化、缓存技术、搜索引擎、优化 sql、硬件之后依然有性能瓶颈时再进行
|
16
akira 2018-04-18 16:48:57 +08:00
上班第一天,先把范式设计忘掉
|
19
dbpe OP @weizhen199 还有一点..用空间换时间...
|
20
Miy4mori 2018-04-18 18:22:25 +08:00
维护冗余字段的代价有点
|
21
Dawnki 2018-04-19 00:58:53 +08:00 via iPhone
看看《高性能 Mysql 》吧,有时追求性能确实要牺牲一些约束和范式的
|
22
Dawnki 2018-04-19 01:01:15 +08:00 via iPhone
不过优化这东西是一步一步来的,遇到慢查询时才需要另辟蹊径,一开始不要过于看重优化.
|