橫瓜執導衆程序員開展大討論關於C、JAVA及其它主流IT技術使用狀況和優勢缺點。html
處理大數據,對於計算要放應用層
不要採用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的網絡延遲
前端