原创 多線程學習四 讀寫鎖 ReadWritelock

什麼是讀寫鎖 1.允許多個變量同時訪問共享變量 2.只允許一個線程寫變量 3.如果一個線程正在執行寫操作,那麼該變量不可以讀 與互斥鎖區別 讀寫鎖只有在寫的時候互斥,性能比互斥鎖好。

原创 《第五講 深入淺出索引下》-讀書筆記

索引覆蓋 因爲我們的二級索引搜索後會有回表操作,建立聯合索引,覆蓋我們需要獲取的字段,減少回表操作,這個過程就叫索引覆蓋。覆蓋索引能大大增加我們的查詢性能。 最左前綴原則 建立聯合索引(a,b),當只對a查詢時,仍可以用上該索引,當只使用

原创 多線程學習 線程池TheadPoolExecutor的使用

創建一個線程池 ThreadPoolExecutor(   int corePoolSize,   int maximumPoolSize,   long keepAliveTime,   TimeUnit unit,   Blockin

原创 《第七講 行鎖功過》讀書筆記

行鎖 各個搜索引擎有自己的行鎖實現方式。MyIsam沒有實現行鎖,這個是被innodb取代在原因之一。 innodb實現行鎖基於索引,如果沒有使用索引,innodb將鎖住整個表。 兩段鎖協議:innodb不會在事務一開始就加行鎖,而是在執

原创 原型模式(淺克隆和深克隆)筆記

什麼是原型模式 原型模式也稱爲克隆模式,可以在不知道對象創建過程的情況下複製出一個新的對象。 克隆方式分爲淺克隆和深克隆。 怎麼實現原型模式 Object類中有一個clone()方法,所以要使用原型模式非常簡單,只要實現Cloneable

原创 多線程學習一 可見性、原子性和有序性

可見性 在單核時代,所有的緩存都操作同一個cup上的緩存,所以可見性很容易解決。當a線程更新了緩存上的變量,那麼在b線程去訪問該變量的時候,拿到的一定是最新值。 在多核時代,每個cup都有自己的緩存區,當不同cup上的線程去訪問內存中的同

原创 解決linux下生成pdf無中文與下劃線問題

項目有個需求,需要通過將docx模板替換文字後生成pdf,但是在linux下生成的pdf無法顯示中文和下劃線。經過排查,是linux不支持中文字體的問題,所以生成的pdf沒有中文。找到原因就很好處理問題了。   找到需要的字體問題 win

原创 《18講爲什麼這些SQL語句邏輯相同,性能卻差異巨大》-讀書筆記

該篇講的主要是索引失效的情況。 1.對索引使用函數,會導致走全表搜索。因爲使用函數後,索引變得無序,優化器選擇不執行索引。 2.當對字符串類型的字段進行int類型的where查詢時,因爲mysql對這種情況,都是對字符串類型的字段進行轉換

原创 《第12講爲什麼我的MySQL會“抖”一下》讀書筆記

在我們執行sql的時候偶爾會抖一下的原因:數據庫對髒頁進行了flush操作。 髒頁:當內存數據頁跟磁盤數據頁不一樣的時候,就叫髒頁。 乾淨頁:當內存數據頁跟磁盤數據一樣的時候,叫乾淨頁。 mysql flush四種場景: 1.當redo

原创 《第六講 全局鎖和表鎖》讀書筆記

mysql分 全局鎖,表鎖,行鎖。 全局鎖 全局鎖對整個數據庫加鎖。命令是 Flush tables with read lock (FTWRL)。當使用全局鎖的時候,更新語句(增刪改),表結構修改,表新增,更新類事務提交。也就是全庫只讀

原创 多線程學習二 解決可見性和有序性

導致Java多線程可見性問題的原因是因爲緩存問題,而導致有序性問題的原因是編譯優化,直觀的解決問題就是禁用緩存和禁用編譯優化(選擇性) 具體方法: volatile,synchronized 和 final 三個關鍵字,以及六項Happe

原创 《第九講 普通索引和唯一索引選擇》 讀書筆記

查詢 唯一索引:因爲做了唯一約束,查詢到值以後會直接返回。 普通索引:匹配到第一個節點後,會繼續向後匹配。 性能來說,差不多 更新 唯一索引:需要做唯一校驗,所以會讀取索引校驗,導致不能使用changebuff。 普通索引:更新的時候先將

原创 《第11講怎麼給字符串字段加索引》 讀書筆記

字符串字段索引問題 字符串佔空間比較大,如果用全匹配的索引,會導致一頁索引數量比較少,可能出現頻繁讀取磁盤表的問題。 前綴索引 腳本:alter table SUser add index index2(email(6)); 優勢:節約空

原创 《第四講 深入淺出索引上》-讀書筆記

索引類型 哈希表,有序表,搜索樹 哈希表:mongodb,redis 有序表:有序數組索引只適用於靜態存儲引擎 搜索樹:innodbs等數據引擎 innodbs索引類型 主鍵索引,普通索引 主鍵索引:節點值爲主鍵,葉子節點裏存儲的是整行數

原创 《第三講 講事務隔離:爲什麼你改了我還看不見》- 讀書筆記

ACID 事務的4個特性:ACID,分別是: A: Atommicity 原子性  C:Consistency 一致性 I:Isonlation 隔離性 D:Durability 持久性 Mysql數據庫隔離級別 事務的隔離性就是事務的隔