`

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

 
阅读更多

横瓜执导众程序员开展大讨论关于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的网络延迟



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics