原创 理解mysql_常用經典sql

1、允許mysql遠程連接       同4     3、查看字符集設置        show variables like 'character%';     4、數據庫賦權       grant all on *.* to 'ro

原创 理解高併發(2).我對併發編程的理解

對於併發編程, 涉及的技術點非常多, 我們首先需要明確一些基本概念,只有概念清晰,才能做到在以後深入學習關鍵技術的過程中不致於感覺到喫力和迷惑。 其次,我們還需要明白在併發編程最需要關注的問題是什麼? 帶着關鍵問題去學習,才能夠起到事辦功

原创 理解高併發(8).可重入鎖RetreenLock用法

一、概述與區別 jdk1.5新增RetreenLock機制 並不是爲了替代內置鎖, 而是當內置鎖不能滿足鎖的高級需求時jdk提供的一種可選鎖方案 具有與內置鎖相同的內存語義 內置鎖是非公平鎖,竟爭上崗 lock鎖有更高級的功能,如結合條

原创 理解高併發(1).序言

高併發已不是個熱詞, 然而用好它並非易事,很多時候如果沒有使用得當,極容易產生適得其反的效果。 本系列我將系統性的給大家分享高併發的技術要點。 其具體技術點包括以下: 1. 我對併發編程的理解 2. synchronized原理及用法 3

原创 理解高併發(7).編程過程中鎖的優化技巧

分拆(段)鎖把一個集合看分成若干partition, 每個partiton一把鎖。ConcurrentHashMap就是分了 16個區域,這16個區域之間是可以併發的。 mysql innode的行級鎖運用的就是該思想。 儘量減小

原创 淺談zk(1) 爲什麼要使用zookeeper?

隨着應用規模的迅速擴張,單臺機器的部署已經難以支撐用戶大規模、高併發的請求了, 因此服務化、集羣化、分佈式概念應運而生。 針對這種場景,人們通常使用的做法就是將軟件按照模塊進行拆分,形成獨立的子系統,然後在局域網內部署到多臺機器上面,

原创 理解mysql_鎖的概念

對於鎖需要重點掌握以下:   1.  鎖分類   ● 表鎖   ● 行鎖   ● 對象鎖(meta-table鎖),在table cache層實現   ● 頁鎖   ● 排他鎖(互斥鎖、X鎖)   ● 共享鎖(S鎖) 2.鎖的使用注意事項

原创 理解高併發(9).線程通信之_wait、notify

消息通信的兩種模型: 消息傳遞wait/notify是採用該種機制實現的。 是藉助於操作系統底層的消息通信機制。 共享內存多線程中的數據同步的內存可見性是基於些模型。例如,A線程修改了變量值, 該變量的值會先寫回主內存,然後再由B線程

原创 理解高併發(6).jvm對內置鎖的優化

早期的synchronized性能低下, 因爲監視器鎖monitor是依賴於底層操作系統的mutx-lock實現,當多個線程在monitor中的wait隊列中竟爭上崗時會發生線程狀態切換, 這種切換需要由操作系統的內核態轉化爲用戶態,性能

原创 理解高併發(3).多線程開發常見問題示例

多線程開發過程中,經常會出現的一些問題:非線程安全、死鎖、飢餓鎖。 示例代碼如下: 非線程安全package com.zuche.thread.demo1; public class TestClient { public stat

原创 理解高併發(4).死鎖監測方法

windows環境: 查看當前活動java進程 jstack 堆信息輸出 分析堆信息,發現死鎖 死鎖的通用解決法則: 按相同的順序加鎖。 點贊 收藏 分享 文章舉報

原创 理解mysql_limit優化思路

  Limit 是將所有記錄查詢出來進行範圍限制輸入。   會導致前面不需要的記錄也進行io讀取。 優化整體思路就是儘可能少操作io, 常用手段:     1、使用記錄主鍵的方式進行優化          如: select * from

原创 理解高併發(5).synchronized原理及用法

歷史最優久的使用最方便的線程同步的關鍵字。必須點贊 一、synchronized 特性 同一時刻只有一個線程訪問臨界資源 其它未獲取到鎖執行權的線程必須排隊等待 保證共享資源的原子性、可見性和有序性 進入synchronized範圍內自

原创 理解mysql_order by排序原理及優化

一、排序算法    a.  一次掃描性能高,減少了io隨機請求的次數    b.  排序操作是在內存(sort_buffer)裏面進行的, 先select結果再進行排序,如果結果值大於max_length_for_sort_data 閥值

原创 理解mysql_簡述mvcc

Mvcc其實並不是真正意義上實現的樂觀鎖。mysql只是用它來解決事務隔離級別中的不可重複讀的問題。 當事務T1 開啓後, 需要修改某行, 會先給該行加上排他鎖, 並且生成一個版本。 此時,事務T2進入,讀取的記錄永遠是事務T1提交前的一