横瓜执导众程序员开展大讨论关于C、JAVA及其它主流IT技术使用情况和优点缺点。

遥执乾坤(44758121)  18:21:23
mysql据说只能使用一个索引,我这里几乎所有字段都有索引。

但每个字段就算用索引,也需要扫描至少100w以上记录。

横瓜(601069289)  18:23:12

mysql支持16个索引

对1-3字段索引属于优质的数据库结构

横瓜(601069289)  18:24:56

再多了,就是数据库结构设计不合理

横瓜(601069289)  17:53:15

处理大数据,对于计算要放应用层

不要采用SQL执行计算,可以垂直分解应用业务和复杂计算

横瓜(601069289)  17:54:50

如果数据量特别大,请采用水平方式来分解应用业务和复杂计算

采用水平方式来分解应用业务和复杂计算,可处理TB级的数据量,为全世界提供信息服务

横瓜(601069289)  17:59:20

采用普通PC+固态硬盘+水平分解业务+缓存+LINUX2.4以上的版本+接入层请求分发均衡

~游濄丿群鴨(39012090) 2013-6-28 10:49:07

java 是有些东西做不了

上海-石头哥(59851444) 2013-6-28 10:49:21

 靠!

当然了

人也有些东西做不了

这些都是正常的

做驱动程序 就不适合用java

Glory(1302516908) 2013-6-28 10:50:30

唉,不说了,都是血泪,这么多年,绕不开java的队伍,都是血泪,和java队伍搭班子太累

上海-石头哥(59851444) 2013-6-28 10:50:43

你没遇到对的人

不是java的问题

最难相处也是人

~游濄丿群鴨(39012090) 2013-6-28 10:51:03

比如让c c++来做web的前端开发,会不会比较麻烦?

上海-石头哥(59851444) 2013-6-28 10:51:12



北京-普通人(409031406) 2013-6-28 10:51:26

谁会用c++,c做前端

~游濄丿群鴨(39012090) 2013-6-28 10:51:44

是的咯

北京-普通人(409031406) 2013-6-28 10:53:23

c++、c配合JAVA或者PHP啥的,都挺好的嘛,c服务端数据处理

Glory(1302516908) 2013-6-28 10:53:27

有做java的吗?

请教个问题

遥执乾坤(44758121) 2013-6-28 10:53:56

java至少用过5-6年的才能做事情。用3年以下的人,很喜欢弄一堆构架进去,啥spring, hibernate, structs。。。做企业级应用,这些都是垃圾东西。

Glory(1302516908) 2013-6-28 10:54:08

一个小狗屁项目,hibernate配置数据库,就比直接写数据库访问快?

遥执乾坤(44758121) 2013-6-28 10:54:56

大公司也不用这些东西,因为前后分离,ao dao分离,无法用他们。

然后剩下的就只有没有经验的人,天天被那帮所谓的学校老师忽悠,以为这些很牛叉。

Glory(1302516908) 2013-6-28 10:55:29

乾坤说的太对了

北京-普通人(409031406) 2013-6-28 10:56:03

不比直接写数据库快。

~游濄丿群鴨(39012090) 2013-6-28 10:56:09

hibernate 比较适合通用

空/卡皮(501968942) 2013-6-28 10:56:11

大家在批判学校的?

Glory(1302516908) 2013-6-28 10:56:14

弄一堆东西进去,来个新功能,发现无法套那堆东西,然后告诉你:java实现不了,java就这么被恶心了

~游濄丿群鴨(39012090) 2013-6-28 10:56:28

有些公司就喜欢一劳永逸。搞个hibernate就可以通用任何数据库

不用你在重新重写sql

遥执乾坤(44758121) 2013-6-28 10:57:35

问题是,正规的公司几乎都是mysql。。。 oracle那么贵,一般人根本用不起。

~游濄丿群鴨(39012090) 2013-6-28 10:58:10

就像你说的企业开发,就特别喜欢用hibernate

比如 DB2 INFORMIX

等乱起八糟的数据库都会碰到

Glory(1302516908) 2013-6-28 10:58:36

企业应用,那也可以理解了

我他妈做个自家的系统,硬件都是自己配的,别说软件了,程序员也非得弄进这一套来,这不是找骂?

~游濄丿群鴨(39012090) 2013-6-28 10:59:35

不过hibernate可以和 直接写sql 混用

遥执乾坤(44758121) 2013-6-28 10:59:40

调用别人的数据库是最痛苦的事情。。。

~游濄丿群鴨(39012090) 2013-6-28 11:00:44

我估计是 那个程序员用惯了hibernate,因为它也帮助程序员少些代码。

~游濄丿群鴨(39012090) 2013-6-28 11:00:53

甚至不用写sql

Glory(1302516908) 2013-6-28 11:02:02

这就出来问题了——部分java程序员招骂第一原因:套路化

广州-恒-java(821600682) 2013-6-28 11:02:14

公司开发一套通用的,现场部署时数据库可能是别人的,表名,字段名可能不一样,ORM这个个人感觉还是有需要的。。

上海-石头哥(59851444) 2013-6-28 11:02:36

你们一味的骂是因为不适合你们

Glory(1302516908) 2013-6-28 11:02:45

就像彪哥打架,一套热身还没打完,人家一脚踢到裤裆,你已经趴下了

上海-石头哥(59851444) 2013-6-28 11:02:51

结合自己的观点

遥执乾坤(44758121) 2013-6-28 11:03:17

框架的确不适合啥东西都是自己的。

~游濄丿群鴨(39012090) 2013-6-28 11:03:23

框架有适用范围,具体用不用。还不是老大说得算

遥执乾坤(44758121) 2013-6-28 11:03:37

但如果数据库都是别人的,那就最好用个来屏蔽差异了。

北京-普通人(409031406) 2013-6-28 11:03:38

如果觉得hibernate不好用,可以直接开发ORM,很多公司也会自己封装自己的orm。其实hibernate优势还是慢多的

满多的

上海-石头哥(59851444) 2013-6-28 11:03:44

hibernate在快速开发上还是有很强大的,也很自动,不过要完全用得游刃有余,那绝对是高手所为,我其实不建议新生用

Glory(1302516908) 2013-6-28 11:03:54

再一个就是霸王硬上弓,前一阵碰上一个学生,给我们做推荐算法,上亿的数据,非得java,结果32G的内存怎么都搞不定

北京-普通人(409031406) 2013-6-28 11:04:03

想用好hibernate还是要高手

上海-石头哥(59851444) 2013-6-28 11:04:18

如果一直使用hibernate,但本身自己sql基础不牢,其实到后期很致命

遥执乾坤(44758121) 2013-6-28 11:04:20

对。hibernate我当年用的时候,被里面的几个bug搞死了,后来只能修改hibernate源码才搞定。浪费了太多时间。

~游濄丿群鴨(39012090) 2013-6-28 11:04:47

hibernate只能完成80%的任务。

abc(951514291) 2013-6-28 11:04:57

要不就用Mybatics,JPA

~游濄丿群鴨(39012090) 2013-6-28 11:05:08

一些复杂查询,还是得sql来的直接

Glory(1302516908) 2013-6-28 11:05:19

后来直接把他踢走,换另外一个学生过来,8G内存稳定可控,一天推荐的算量还提高好几倍

遥执乾坤(44758121) 2013-6-28 11:06:05

我写了一个2个文件,一个db操作,一个多链接cache,然后就解决了80%的数据库问题。操作方式和hibernate的基础方式几乎一样。也是没有sql语句就能办事情。

北京-普通人(409031406) 2013-6-28 11:06:06

很多做JAVA的人,做内存控制,内存处理这块,是没有概念的

Glory(1302516908) 2013-6-28 11:06:28

只是内存控制没概念还好,关键是数据结构没概念

上海-石头哥(59851444) 2013-6-28 11:06:40

如果sql本身基础很牛B,那你用hibernate我觉得还是可以大大开发效率

~游濄丿群鴨(39012090) 2013-6-28 11:06:53

hibernate 有个很大的用处就是通用各种数据库呀

Glory(1302516908) 2013-6-28 11:07:13

上亿的数据,本是稀疏矩阵,他竟然敢使用两级字典做数据结构

上海-石头哥(59851444) 2013-6-28 11:07:18

后来我一直用ibatis

遥执乾坤(44758121) 2013-6-28 11:07:23

通用数据库,是我认为hibernate唯一值得用的地方。

上海-石头哥(59851444) 2013-6-28 11:07:36

是因为我也不太喜欢太多的限制

~游濄丿群鴨(39012090) 2013-6-28 11:07:45

不然仅仅是db操作和cache,很多db库都能做

上海-石头哥(59851444) 2013-6-28 11:07:51

这点似乎没啥用

谁会老换数据库

遥执乾坤(44758121) 2013-6-28 11:08:10

适合你调用别人数据库的情况。

别人的数据库天知道啥玩意。有些还是嵌入式的呢。

~游濄丿群鴨(39012090) 2013-6-28 11:08:25



上海-石头哥(59851444) 2013-6-28 11:08:51

我游走过几个公司,有银行,也有第三方支付等

发现hibernate在这些地方出场并不高

几乎没有

都是用ibatis

Glory(1302516908) 2013-6-28 11:09:44

访问量略微大一点,hibernate撑不住啊

上海-石头哥(59851444) 2013-6-28 11:10:19

关键不是这个

是生成的sql不一定可控,这也是很大一方面

~游濄丿群鴨(39012090) 2013-6-28 11:11:21

访问量大的地方得另外处理了。hibernate 不适合做互联网应用,做做后台管理还是可以的。

上海-石头哥(59851444) 2013-6-28 11:11:23

自己写sql嘛,你懂的,出来的什么 都知道

遥执乾坤(44758121) 2013-6-28 11:11:25

我写的代码和ibatis的结构很像,呵呵。就是轻量很多。

但同时也有bug的多。。。唉。

abc(951514291) 2013-6-28 11:12:00

访问量大,并发高,把hibernate的缓存用好,再结合第三方缓存框架也可以啊

上海-石头哥(59851444) 2013-6-28 11:12:03

bug多慢惭改

慢慢改

~游濄丿群鴨(39012090) 2013-6-28 11:12:54

后台统计、计算这些未必还用hibernate啊?

遥执乾坤(44758121) 2013-6-28 11:13:29

就一个接口。剩下的就是Mysql,oracle的实现了。

jace(793727599) 2013-6-28 11:14:48

你们有专职做数据分析工作的吗?

Glory(1302516908) 2013-6-28 11:14:52

有那个空改第三方框架的bug,就不能自己写?

最有意思的,java比c++队伍多一个岗位:系统架构师

遥执乾坤(44758121) 2013-6-28 11:15:46

c++也有。。。

Glory(1302516908) 2013-6-28 11:15:54

~游濄丿群鴨(39012090) 2013-6-28 11:15:59

架构师应该都有吧。

上海-石头哥(59851444) 2013-6-28 11:16:07

呵呵!

遥执乾坤(44758121) 2013-6-28 11:16:10

搜索构架师。

Glory(1302516908) 2013-6-28 11:16:14

事实上是有,但c++的队伍较少公开专门招

jace(793727599) 2013-6-28 11:16:14

类似数据科学家的角色

上海-石头哥(59851444) 2013-6-28 11:16:20

系统架构师并不是指语言的

java的也有好吧

你们把语言看得太重了

我想说 太年轻



Glory(1302516908) 2013-6-28 11:17:00

说的太对了,真正的系统架构师应该是通用的

遥执乾坤(44758121) 2013-6-28 11:17:04

构架师只有大规模项目才需要。

上海-石头哥(59851444) 2013-6-28 11:17:07

我们公司的就是

Glory(1302516908) 2013-6-28 11:17:14

但java通常有个专门岗位:jva系统架构师,

上海-石头哥(59851444) 2013-6-28 11:17:18

虽然不见得比我牛B

呵呵!

那是错误的认识

Glory(1302516908) 2013-6-28 11:18:00

很多公司专门招java系统架构师的

上海-石头哥(59851444) 2013-6-28 11:18:02

我们公司的架构师常常问我一些问题的

Glory(1302516908) 2013-6-28 11:18:24

条件就是熟悉各类java框架

加速度(272551280) 2013-6-28 11:18:24

solr 查询 返回时 剔除了html的内容 怎么改成不剔除呢?

上海-石头哥(59851444) 2013-6-28 11:18:26

强调的是系统及架构

加速度(272551280) 2013-6-28 11:19:16

solr 查询 返回时 剔除了html的内容 怎么改成不剔除呢?

有哪位同学 研究过这个?

Glory(1302516908) 2013-6-28 11:20:23

我们土比,偶尔用用solr,都是自己转码

~游濄丿群鴨(39012090) 2013-6-28 11:20:44

呵呵 熟悉主流框架,就能从这些成熟的产品吸取经验嘛

遥执乾坤(44758121) 2013-6-28 11:31:04

有运维人员想找工作不?

哥不要开发,开发找个在校大学生就能搞定了。需要的是运维,因为运维没有几年经验,啥都不会。

~游濄丿群鴨(39012090) 2013-6-28 11:32:27

开发这么不值钱了。。。

遥执乾坤(44758121) 2013-6-28 11:33:13

,核心开发有人了啊,外围开发自然找几个实习生足够了。

北京-***(506650296) 2013-6-28 11:34:15

恩,学生可塑性高,听话

jace(793727599) 2013-6-28 11:56:19

只要有钱有人有咨询,想不嬴都不行

jace(793727599) 2013-6-28 12:02:03

有钱意味能用最稳定最先进的架构,有人意味着分工明确,每个领域都各司其职,有专业的工程师,有咨询意味着可以跟IBM、Oracle、teradata、intel等合作,搞一些规范成熟的方案。

jace(793727599) 2013-6-28 12:03:03

类似于拍电影,有导演有剧本有主角。

jace(793727599) 2013-6-28 12:09:01

所以窝在大公司里可以学到很多东西

Glory(1302516908) 2013-6-28 12:10:51

头一次听说,窝在大公司里可以学到很多东西

jace(793727599) 2013-6-28 12:11:40

反正我学到挺多的

Glory(1302516908) 2013-6-28 12:13:11

上边的人可以学到很多东西

而且有足够的钱来回折腾

十一月的肖邦(1041901964) 2013-6-28 12:13:35

大公司学得多吗

表示想去大公司

Glory(1302516908) 2013-6-28 12:14:12

像阿里的技术高层,大概把所有的高性能方案都学习探索过

空/卡皮(501968942) 2013-6-28 12:15:10

进不去啊

Glory(1302516908) 2013-6-28 12:16:23

我当年去华为,操成天就那点屌东西,整个三级部门就那点屌东西

要学东西,大概得混到三级部门经理以上的级别了

遥执乾坤(44758121) 2013-6-28 12:19:17

去互联网公司吧,的确可以学到很多东西,只要你愿意。

空/卡皮(501968942) 2013-6-28 12:23:33

哦哦

初学者 进也难啊

Glory(1302516908) 2013-6-28 12:23:56

有没有阿里的?过两年现在的公司成不了,争取去阿里了

遥执乾坤(44758121) 2013-6-28 12:24:23

阿里不要大于30岁的人。

空/卡皮(501968942) 2013-6-28 12:24:37

为什么

遥执乾坤(44758121) 2013-6-28 12:24:45

没有前途了啊。

Glory(1302516908) 2013-6-28 12:24:49

扯啊,阿里动不动开年薪五六十万,都是30多岁的人

南京-听风(190661155) 2013-6-28 13:30:18

怎么可能不要30岁以上的人,阿里需要的反而大多数是30岁以上经验丰富的

十一月的肖邦(1041901964) 2013-6-28 13:36:41

action怎样获取前台select 的值

阳光(413055687) 2013-6-28 14:04:43

request.getParameter("")就可以,或者Action里变量  名称跟select名字一样,有getXXX,setXXX方法也行

北京-普通人(409031406) 2013-6-28 16:51:27

有遇到这样的情况么,在window下,用jdbc去跑100个mysql查询需要600毫秒,在linux需要1500毫秒

遥执乾坤(44758121) 2013-6-28 16:54:51

mysql下,跑一个简单的select范围查询,有索引的情况下,花费了2分钟,大家又遇到过么?

上海-石头哥(59851444)  17:00:12

把sql贴出来看看吧

说不定可以看出什么 端倪

100个才600ms

还有什么可以说的啊

2分钟的看一睛

遥执乾坤(44758121)  17:03:24

select AvgDownloadSpeed,UploadTaskTime,peerid,TaskDefinitionID from taskexecmain where UploadTaskTime>='2013-06-18 00:00:00 000' and UploadTaskTime<'2013-06-19 00:00:00 000' and TaskDefinitionID in ('7194','7195','7196',) and totalDownLoadTime>'1.4E-45' and totalDownLoadTime<'200.0' and (errorcode is null OR errorcode = '0') limit 0,5000, time:226613167540,ok:true

time:226613167540 纳秒,其实就是226秒。

上海-石头哥(59851444)  17:05:22

我的妈呀

7194 ~ 7489

上海-石头哥(59851444)  17:05:55

这是连起来的啊

上海-石头哥(59851444)  17:07:30

and (errorcode is null OR errorcode = '0')

把这个 is null

换成其它方式试试

去掉这个能快多少

遥执乾坤(44758121)  17:11:01

实际的in有1k多个值,这里拷贝不下。

上海-石头哥(59851444)  17:13:04

in里边的数据是string不是int的吗

还有你数据字段用是的string是吗

遥执乾坤(44758121)  17:14:24

in里面是int,但这些int不能保证连续。

京-一夏<wpx378802619@qq.com>  17:14:33

in换成exists试试

上海-石头哥(59851444)  17:14:40

那你把引号去掉

遥执乾坤(44758121)  17:14:46

不是一样么?

引号这种就算转化也会很快才对啊。

北京-普通人(409031406)  17:24:36

mysql在你本地,还是其他机器上

遥执乾坤(44758121)  17:24:50

都是本机跑的。

北京-普通人(409031406)  17:25:18

那本机跑。应该挺快递

Glory(1302516908)  17:25:24

我们现在倒腾数据都用shell,发现shell真他妈强大

mysql里只剩下最后简单查看的数据,几乎不用mysql做任何略微复杂的运算了

北京-普通人(409031406)  17:27:38

shell确实很强大

awk 对数据处理很强大

遥执乾坤(44758121)  17:28:35

awk处理文本数据,已经足够了。

南京-听风(190661155)  17:28:35

我也听说了,能举个应用场景吗

举个应用的例子

北京-普通人(409031406)  17:29:56

对文本数据处理,确实完全够了

Glory(1302516908)  17:31:15

非实时系统就有这个好处,早晨8点上班前把数据准备好就OK

北京-普通人(409031406)  17:31:41

一般用于做分析,做计算用

Glory(1302516908)  17:31:51

再大的数据都不存在大数据问题了

北京-普通人(409031406)  17:31:54

恩。大数据公司估计用的多

Glory(1302516908)  17:33:58

好像群里有些兄弟去年去云基地,云基地都做什么啊?

南京-听风(190661155)  17:34:20

哪个云基地?

云基地现在多如牛毛

北京-普通人(409031406)  17:35:34

云基地?在那里

云基地搞云计算?

Glory(1302516908)  17:36:07

北京北边什么云基地,去年群里不是好几个人去吗?

北京-醉(253215039)  17:40:59

@乾坤:

上面那个sql所在表什么量级?

遥执乾坤(44758121)  17:46:54

1100w

北京-醉(253215039)  17:49:17

应该是做全表扫瞄了

遥执乾坤(44758121)  17:50:18

没有,全部扫描估计30分钟都搞不定,有好几十个G呢。

北京-醉(253215039)  17:50:42

这么大的表啊?

北京-醉(253215039)  17:51:45

一条纪录有5k?

遥执乾坤(44758121)  17:52:15

没有5k,但也有上K。

横瓜(601069289)  17:53:15

计算要放应用层

不要采用SQL执行计算

北京-醉(253215039)  17:53:53

高版本mysql应该会自动优化

Glory(1302516908)  17:54:06

先加个where TaskDefinitionID > <的条件,大概能快很多

横瓜(601069289)  17:54:21

可以采用垂直分解应用业务和复杂计算

遥执乾坤(44758121)  17:54:41

TaskDefinitionID 有十万多个。

横瓜(601069289)  17:54:50

如果数据量特别大,请采用水平方式来分解应用业务和复杂计算

采用水平方式来分解应用业务和复杂计算

可处理TB级的数据量,为全世界提供信息服务

北京-醉(253215039)  17:55:30

如果是int型,查询时加了引号,未必能用到索引。

遥执乾坤(44758121)  17:55:45

mysql好像只能用一个索引。

北京-醉(253215039)  17:55:56

另外得把is null去掉吧,这东西肯定不命中索引

横瓜(601069289)  17:56:12

必要时,可以支持1秒/10万次-100万次的请求

北京-醉(253215039)  17:56:31

可以有多个,但你这么大的表,也不能多建。

横瓜(601069289)  17:56:46

如果优化到非常完美的情况下,可以支持1秒/10万次-100万次的请求

北京-醉(253215039)  17:56:54

这么大数据,索引也很耗资源

横瓜(601069289)  17:57:05

等于100个GOOGLE的请求水平

北京-普通人(409031406)  17:58:21

1秒/10万次到100万次的请求,应该要看cpu和数据量吧

Glory(1302516908)  17:59:11

那些值都是连续的,肯定是大小比较嘛,怎么会用in?

横瓜(601069289)  17:59:20

采用普通PC+固态硬盘+水平分解业务+缓存+LINUX2.4以上的版本+接入层请求分发均衡

北京-醉(253215039)  17:59:22

1秒10万次请求,真实的qps也就1000左右把,允许有100ms的网络延迟

最新文章

  1. jQuery弹出窗口浏览图片
  2. 夺命雷公狗----Git---1---安装步骤
  3. vim实用技巧
  4. javaWeb 使用jsp开发 foreach 标签
  5. rtc关机闹钟3 IAlarmManager
  6. FreeSWITCH 1.6在Debian 8上的安装
  7. dubug
  8. uitableviewcell高度自适应笔记
  9. binder
  10. Dubbo xml配置 和注解配置 写法
  11. mapreduce (七) 几个实例
  12. hdu4597 Play Game
  13. Android大放送干:书籍、过程、工具等各种全
  14. 在ASP.NET Core下使用SignalR技术
  15. js常用的字符串方法分析
  16. SpringBoot使用Redis共享用户session信息
  17. HTML基础篇
  18. [20181015]为什么是3秒.txt
  19. mybatis-plus忽略映射字段
  20. Rob Pike

热门文章

  1. SQL Server中存储过程比直接运行SQL语句慢的原因
  2. Codeforces Round #FF 446A DZY Loves Sequences
  3. [ACM] POJ 2506 Tiling (递归,睑板)
  4. python基础课程_学习笔记20:标准库:有些收藏夹——os
  5. 成C++应用程序世界------异常处理
  6. JavaScript中JSON字符串和JSON对象相互转化
  7. 经典的SQL语句面试题
  8. 领域驱动设计(DDD)
  9. WCF连接被意外关闭
  10. MySql 集群配置