原创 avtivityMQ之—springmvc集成avtivityMQ環境搭建

引子 工作中有用到activitymq作爲消息中間件來發微信通知,不過環境都是配好了的,只是按着那個流程使用,自己也有看一些資料,不過還是不能很好的理解avtivityMQ的使用和原理,所以用業餘時間來一遍,順便全面的學習一遍av

原创 MySQL Query 的優化—Query 語句優化基本思路和原則

1、Query 語句優化基本思路和原則 在分析如何優化 MySQL Query 之前,我們需要先了解一下 Query 語句優化的基本思路和原則。一般來說,Query 語句的優化思路和原則主要提現在以下幾個方面: 下面所列的幾點信息

原创 MySQL Query 的優化—Join的實現原理及優化思路

Join 的實現原理 在尋找 Join 語句的優化思路之前,我們首先要理解在 MySQL 中是如何來實現 Join 的,只要理解了實現原理之後,優化就比較簡單了。 在 MySQL 中,只有一種 Join 算法,就是大名鼎鼎的 Ne

原创 MySQL合理利用鎖機制優化

MyISAM 表鎖優化建議 對於 MyISAM 存儲引擎,雖然使用表級鎖定在鎖定實現的過程中比實現行級鎖定或者頁級鎖所帶來的附加成本都要小,鎖定本身所消耗的資源也是最少。但是由於鎖定的顆粒度比較到,所以造成鎖定資源的爭用情況也會比

原创 mysql MyISAM表鎖

本文屬轉載,原文出自併發控制 mysql MyISAM表鎖 1、前言 鎖是計算機協調多個進程或線程併發訪問某一資源的機制 。如何保證數據併發訪問的一致性、有效性是所有數據庫必須解決的一 個問題,鎖衝突也是影響數據庫併發訪問性能的一

原创 HashSet 詳解

簡介 HashSet使我們平時比較常用的一個集合類,實現的是Collection下面的Set接口,具有如下特點: 1、線程不安全 2、無序(不會保證其中元素的順序會與加入時一樣) 3、存放元素不可重複(具體看本文最後一節)

原创 如何處理 環信獲取token慢的問題

引子 最近在開發一個社交軟件的過程中用到了環信即時通訊。然後發現系統第一次啓動的時候添加好友會很慢。隨即跟了下代碼發現是創建Token的過程比較耗時間。於是引出了兩個問題需要解決: 1、系統啓動後第一次創建token速度慢的問題

原创 java設計模式—建造者模式

建造者模式(Builder):將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 舉例:我們生活當中有許多設備都是以組裝的形式存在的,例如臺式電腦,那麼有些廠商就會推出一些具有默認配置的組裝電腦主機(這裏可

原创 mongodb 內嵌文檔多條件查詢($elemMatch)

引子 最近,工作上需要對內嵌文檔進行多條件查詢,所以用到了“$elemMatch”,花了很大精力終於也算初步弄明白了“$elemMatch”的用處。所以在這裏記下一些新的。 $elemMatch用法 “$elemMatch”用於

原创 響影響MySQL性能的相關因素

前言 大部分人都一致認爲一個數據庫應用系統(這裏的數據庫應用系統概指所有使用數據庫的系統)的性能瓶頸最容易出現在數據的操作方面,而數據庫應用系統的大部分數據操作都是通過數據庫管理軟件所提供的相關接口來完成的。所以數據庫管理軟件也就

原创 MySQL Query 的優化— ORDER BY 的實現與優化

在 MySQL 中,ORDER BY 的實現有如下兩種類型: ◆ 一種是通過有序索引而直接取得有序的數據,這樣不用進行任何排序操作即可得到滿足客戶端要求的有序數據返回給客戶端; ◆ 另外一種則需要通過 MySQL 的排序算法將

原创 MySQL 數據庫Schema設計的性能優化

前言 很多人都認爲性能是在通過編寫代碼(程序代碼或者是數據庫代碼)的過程中優化出來的,其實這是一個非常大的誤區。真正影響性能最大的部分是在設計中就已經產生了的,後期的優化很多時候所能夠帶來的改善都只是在解決前妻設計所遺留下來的一些

原创 Mysql InnoDB鎖

InnoDB存儲引擎的鎖 本文書轉載,原文來自Mysql InnoDB鎖 1、InnoDB支持行級鎖(row-level locking)和表級鎖,默認爲行級鎖 2、InnoDB存儲引擎實現瞭如下兩種鎖 a、共享鎖(S Loc

原创 MySQL Query Cache優化

Query Cache實現原理 MySQL 的 Query Cache 實現原理實際上並不是特別的複雜,簡單的來說就是將客戶端請求的 Query語句(當然僅限於 SELECT 類型的 Query)通過一定的 hash 算法進行一個

原创 springmvc 攔截器區分ajax請求

引子 最近由於工作需要,在攔截器裏對ajax請求做一些不同的處理,在這裏把自己的的處理方式分享出來。比較簡單,看看代碼就會明白了。 ajax代碼 $(document).ready(function(){ $(".new_