原创 爲什麼list.sort()比Stream().sorted()更快?

昨天寫了一篇文章《小細節,大問題。分享一次代碼優化的過程》,裏面提到了list.sort()和list.strem().sorted()排序的差異。 說到list sort()排序比stream().sorted()排序性能更好。 但沒說到

原创 小細節,大問題。分享一次代碼優化的過程

某個接口耗時大約8s,一開始我以爲是io(主要是數據庫)或者網絡傳輸的瓶頸問題。 想着多半是SQL優化的問題。 接手一看,沒有進行任何的IO操作或網絡傳輸,僅僅是內存循環處理而已。 我的開發電腦cpu是i7 8代,其運算能力,大概是,整數5

原创 web系統字典統一中文翻譯問題

幾乎每個web系統都離不開各種狀態碼。訂單新建,待支付,未支付,已支付,待發貨。 消息已讀未讀,任務待標記待審批已審批待流轉已完成未完成。等等。 複雜一點的,會有多級狀態碼。 狀態碼超出3個的,一般都會納入統一的字典管理。字典系統作爲一個獨

原创 我們真的需要鏈式查詢嗎?

多年後,面對Quicksql的時候,我將會想起剛參加工作面對mongodb複雜聚合查詢的那個遙遠下午。 那是一種淡淡的憂傷,這麼多年來,這種憂傷僅次於Neo4j那獨樹一幟的語法給我帶來的驚()喜()。 warning! warning! w

原创 in用不用索引,啥時候能用啥時候不能用,一文說清

in/or到底能不能用索引應該是肯定的,但有時生效有時不生效,這個能不能量化計算?這是本文想討論和解答的問題。 in到底用不用索引感覺像一樁懸疑片!古早時期的面經,統一說不走索引,在一些程序員腦海中從此留下不可磨滅的印記。 有些從業時間較

原创 結案了!in到底用不用索引,啥時候能用啥時候不能用

in/or到底能不能用索引應該是肯定的,但有時生效有時不生效,這個能不能量化計算?這是本文想討論和解答的問題。 in到底用不用索引感覺像一樁懸疑片!古早時期的面經,統一說不走索引,在一些程序員腦海中從此留下不可磨滅的印記。 有些從業時間較

原创 mysql和neo4j集成多數據源和事務

在微服務大行其道的今天,按理說不應該有多數據源這種問題(嗯,主從庫算是一個多數據源的很常見的場景。),但是也沒人規定不能這樣做。 就算有人規定的,曾經被奉爲圭臬的數據庫三大範式現在被寬表衝得七零八落,在很多場景下,其實是鼓勵建立冗餘字段的。

原创 mybatis攔截器實現數據權限

前端的菜單和按鈕權限都可以通過配置來實現,但很多時候,後臺查詢數據庫數據的權限需要通過手動添加SQL來實現。 比如員工打卡記錄表,有id,name,dpt_id,company_id等字段,後兩個表示部門ID和分公司ID。 查看員工打卡記錄

原创 MySQL uuid及其相關的一些簡單性能測試

運維同事導入一批大約500萬左右的數據,耗時較久。他使用的是純SQL導入,主鍵使用的是UUID,因爲業務原因沒有使用自增ID。 因爲是內網,不能遠程訪問。 通過溝通,大致覺得有兩個原因,一是因爲UUID作爲主鍵,二是表字段繁多,單行加起來接

原创 本週SQL優化實戰分享

分享一下本週SQL優化的兩個場景。 如果能對讀者有一定的啓發,共同探討,不勝榮幸。 版本信息:mysql,5.7.19 引擎: innodb 場景1 我們有一張常口表,裏面的數據由各種數據源合併而來,所以人員可能有多個手機號其中還包括座

原创 一個線上全文索引BUG的排查:關於類阿拉件數字的分詞與檢索

說到全文檢索的分詞,多半講到的是中(日韓)文分詞,少有英文等拉丁文系語言,因爲英語單詞天然就是分詞的。 但更少講到阿拉伯數字。比如金額,手機號碼,座機號碼等等。 以下不是傳統的從0開始針對mysql全文索引前世今生講起。 我更喜歡從一個小問

原创 扯什麼kafka順序消費,然後呢?古爾丹,代價是什麼

著名面試八股文之kafka爲什麼讀寫效率高,寫的答案之一是partition順序寫,因而能保證分區內的不連續的有序性。 這裏的重點是有序追加到磁盤,而不是嚴格意義上的完全有序性。 幾年前參加了一大數據崗位面試,95%的時間在扯java基礎(

原创 爲了弄清起點小說如何算字扣錢,我特意註冊了作家賬號

閒來無事,想起這些年也算給起點貢獻了不少流量和金錢。 在起點的會員訂閱規則裏,如下圖所示,重點關注2,3和6點,一個是怎麼算錢的,一個是怎麼算字數的。 計費跟字數相關,歸根結底,都是怎麼算錢的事兒。 1. 怎麼算字數 “作品字數以起點計數

原创 揭開神祕面紗,會stream流就會大數據

目錄準備工作1.map類1.1 java stream map1.2 spark map1.2.1 MapFunction1.2.2 MapPartitionsFunction2.flatMap類2.1 java stream flatMa

原创 關於spring嵌套事務,我發現網上好多熱門文章持續性地以訛傳訛

事情起因是,摸魚的時候在某平臺刷到一篇spring事務相關的博文,文章最後貼了一張圖。裏面關於嵌套事務的表述明顯是錯誤的。 更奇怪的是,這張圖有點印象。在必應搜索關鍵詞PROPAGATION_NESTED出來的第一篇文章,裏面就有這這部份內