12
返回列表 发新帖
楼主: prayer21

尽量不在数据库做运算,有人测试过吗

[复制链接]
论坛徽章:
11
鲜花蛋
日期:2011-09-03 18:52:38鲜花蛋
日期:2011-11-09 10:10:12茶鸡蛋
日期:2011-11-19 22:46:41茶鸡蛋
日期:2011-12-14 15:16:572012新春纪念徽章
日期:2012-01-04 11:57:56奥运会纪念徽章:赛艇
日期:2012-09-26 21:40:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:002013年新春福章
日期:2013-02-25 14:51:24
11#
发表于 2011-10-27 16:09 | 只看该作者
kerlion 发表于 2011-10-27 13:09
同意8楼的,不过要尽量避免在Where后有表达式,特别是在过滤数据库的时候,每一行都需要计算的要避免
sele ...

恩 是的 where子句中的表达式甚至可能会导致索引不能被利用。(呵呵, 我之前一直学的是oracle,现在开始学mysql了,对mysql的特性不是很了解,所以不敢断言)

使用道具 举报

回复
论坛徽章:
11
鲜花蛋
日期:2011-09-03 18:52:38鲜花蛋
日期:2011-11-09 10:10:12茶鸡蛋
日期:2011-11-19 22:46:41茶鸡蛋
日期:2011-12-14 15:16:572012新春纪念徽章
日期:2012-01-04 11:57:56奥运会纪念徽章:赛艇
日期:2012-09-26 21:40:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:002013年新春福章
日期:2013-02-25 14:51:24
12#
发表于 2011-10-27 16:11 | 只看该作者
zty5984 发表于 2011-10-27 14:16
我觉得SQL尽可能简单最好,有时候一条语句后悔join很多表 很麻烦

你是说这种语法吗?  table  a  join b on(x=x) join c on(xx=xx).... 我觉得这种语法还是很简洁的。看着蛮舒服的。

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
13#
发表于 2011-10-27 17:17 | 只看该作者
icer_repls 发表于 2011-10-27 12:26
对MySQL还不是很熟悉, 不过我记得TOM在他的书中说过,大概意思就是:能让数据库做的就尽量让数据库做, 能 ...

不同的业务场景,不同的用户量,不同的数据量;
DBA能力的不同,开发人员能力不同,硬件设备不同;

所以一些事情没有必要说成死的,比如是否用一条SQL语句的问题,这个涉及到数据存取设计,设计一定就决定了SQL该如何写......


另外像MySQL的范式 并不是一定要完全遵守,所以对很多东西要综合和全面地考虑!

使用道具 举报

回复
论坛徽章:
11
鲜花蛋
日期:2011-09-03 18:52:38鲜花蛋
日期:2011-11-09 10:10:12茶鸡蛋
日期:2011-11-19 22:46:41茶鸡蛋
日期:2011-12-14 15:16:572012新春纪念徽章
日期:2012-01-04 11:57:56奥运会纪念徽章:赛艇
日期:2012-09-26 21:40:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:002013年新春福章
日期:2013-02-25 14:51:24
14#
发表于 2011-10-27 18:02 | 只看该作者
jinguanding 发表于 2011-10-27 17:17
不同的业务场景,不同的用户量,不同的数据量;
DBA能力的不同,开发人员能力不同,硬件设备不同;

这是肯定的啊, 规则是死的。  具体问题具体分析,我是说通常情况下。
至于范式,并不是MySQL,在所有的数据库中都是, 不一定要死的遵循, 适当的冗余很可能会带来性能上的提升。
归根结底:具体问题具体分析

使用道具 举报

回复
论坛徽章:
25
ITPUB元老
日期:2005-02-28 12:57:00咸鸭蛋
日期:2013-02-07 11:51:42咸鸭蛋
日期:2013-02-08 09:48:51蜘蛛蛋
日期:2013-02-21 15:47:392013年新春福章
日期:2013-02-25 14:51:24咸鸭蛋
日期:2013-02-28 17:08:42蜘蛛蛋
日期:2013-03-29 16:17:14双黄蛋
日期:2013-04-11 16:11:04咸鸭蛋
日期:2013-05-07 11:55:14咸鸭蛋
日期:2013-05-28 10:46:24
15#
发表于 2011-10-28 09:04 | 只看该作者
MySQL比较简单,对设计要求高些,动不动就要求分表分库,对字段的要求也很吝啬,设计的耦合度太高!!

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
16#
发表于 2011-10-28 09:21 | 只看该作者
kerlion 发表于 2011-10-28 09:04
MySQL比较简单,对设计要求高些,动不动就要求分表分库,对字段的要求也很吝啬,设计的耦合度太高!!

动不动就要求分表分库


真没有这么一说的.....你用Oracle 跑与MySQL同等的机器就知道了!!!

不过设计要求确实要高一点,这个主要是跟用的设备,以及大家必须懂MySQL的特性,而不像其他数据库产品那样,有些东西确实更强大!比如JOIN 算法....

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2011-11-13 20:13 | 只看该作者
如果是较为复杂的运算,还是不要让数据库去处理的好

使用道具 举报

回复
论坛徽章:
1
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29
18#
发表于 2011-11-16 15:51 | 只看该作者
本帖最后由 tangchaoql 于 2011-11-16 15:54 编辑
icer_repls 发表于 2011-10-27 12:26
对MySQL还不是很熟悉, 不过我记得TOM在他的书中说过,大概意思就是:能让数据库做的就尽量让数据库做, 能 ...

TOM 在oracle里面讲的东西,考虑的角度不一样!!
在线应用,视具体情况而定。一般的我认为,在线应用SQL的粒度应该尽可能小,尤其是MYSQL,ORACLE不一定,ORACLE很多类型的SQL,可以自己根据oracle的特性写好,让ORACLE来进行内部拆分并行计算。

即使是OLAP也不是一条SQL出结果就好,要充分利用系统资源,平衡性能瓶颈。

简单的说ORACLE MAX MIN 分拆成2条SQL要比一条快,2条UNION ALL就出结果了,但是MYSQL需要一条SQL。 根据实际情况,在云计算当道的今天,快速出结果,比较靠谱儿。

使用道具 举报

回复
论坛徽章:
11
鲜花蛋
日期:2011-09-03 18:52:38鲜花蛋
日期:2011-11-09 10:10:12茶鸡蛋
日期:2011-11-19 22:46:41茶鸡蛋
日期:2011-12-14 15:16:572012新春纪念徽章
日期:2012-01-04 11:57:56奥运会纪念徽章:赛艇
日期:2012-09-26 21:40:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:002013年新春福章
日期:2013-02-25 14:51:24
19#
发表于 2011-11-16 18:00 | 只看该作者
tangchaoql 发表于 2011-11-16 15:51
TOM 在oracle里面讲的东西,考虑的角度不一样!!
在线应用,视具体情况而定。一般的我认为,在线应用SQ ...

额, 我没说绝对的啊
您还懂云计算啊,屌啊

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表