原创 【58沈劍 架構師之路】InnoDB,select爲啥會阻塞insert?

MySQL的InnoDB的細粒度行鎖,是它最吸引人的特性之一。 但是,如《InnoDB,5項最佳實踐》所述,如果查詢沒有命中索引,也將退化爲表鎖。 InnoDB的細粒度鎖,是實現在索引記錄上的。   一,InnoDB的索引 InnoDB的索

原创 【58沈劍 架構師之路】1分鐘瞭解MyISAM與InnoDB的索引差異

《數據庫索引,到底是什麼做的?》介紹了B+樹,它是一種非常適合用來做數據庫索引的數據結構: (1)很適合磁盤存儲,能夠充分利用局部性原理,磁盤預讀; (2)很低的樹高度,能夠存儲大量數據; (3)索引本身佔用的內存很小; (4)能夠很好的支

原创 linux防火牆操作

一、.對於centos7自帶的防火牆的相關指令  #停止firewall  systemctl stop firewalld.service #禁止firewall開機啓動  systemctl disable firewalld.serv

原创 【 58沈劍 架構師之路】4種事務的隔離級別,InnoDB如何巧妙實現?

事務ACID特性,其中I代表隔離性(Isolation)。   什麼是事務的隔離性? 隔離性是指,多個用戶的併發事務訪問同一個數據庫時,一個用戶的事務不應該被其他用戶的事務干擾,多個併發事務之間要相互隔離。   一個事務怎麼會干擾其他事務呢

原创 【58沈劍 架構師之路】數據庫索引,到底是什麼做的?

問題1. 數據庫爲什麼要設計索引?   圖書館存了1000W本圖書,要從中找到《架構師之路》,一本本查,要查到什麼時候去? 於是,圖書管理員設計了一套規則: (1)一樓放歷史類,二樓放文學類,三樓放IT類… (2)IT類,又分軟件類,硬件類

原创 【 58沈劍 架構師之路】InnoDB七種鎖——記錄鎖、間隙鎖、臨鍵鎖

MySQL的InnoDB的細粒度行鎖,是它最吸引人的特性之一。   但是,如《InnoDB,5項最佳實踐》所述,如果查詢沒有命中索引,也將退化爲表鎖。   InnoDB的細粒度鎖,是實現在索引記錄上的。   一,InnoDB的索引 Inno

原创 【58沈劍 架構師之路】InnoDB併發如此高,原因竟然在這?

一、併發控制 爲啥要進行併發控制? 併發的任務對同一個臨界資源進行操作,如果不採取措施,可能導致不一致,故必須進行併發控制(Concurrency Control)。   技術上,通常如何進行併發控制? 通過併發控制保證數據一致性的常見手段

原创 【58沈劍 架構師之路】InnoDB,快照讀,在RR和RC下有何差異?

快照讀(Snapshot Read) MySQL數據庫,InnoDB存儲引擎,爲了提高併發,使用MVCC機制,在併發事務時,通過讀取數據行的歷史數據版本,不加鎖,來提高併發的一種不加鎖一致性讀(Consistent Nonlocking R

原创 【 58沈劍 架構師之路】InnoDB七種鎖——共享/排它鎖、意向鎖、插入意向鎖

今天,將要介紹InnoDB另外三種:共享/排他鎖,意向鎖,插入意向鎖。   一,共享/排它鎖(Shared and Exclusive Locks) 《InnoDB併發爲何這麼高?》一文介紹了通用的共享/排它鎖,在InnoDB裏當然也實現了

原创 【 58沈劍 架構師之路】InnoDB七種鎖——自增鎖(Auto-inc Locks)

一,案例說明 MySQL,InnoDB,默認的隔離級別(RR),假設有數據表: t(id AUTO_INCREMENT, name);   數據表中有數據: 1, shenjian 2, zhangsan 3, lisi   事務A先執行,

原创 mysql寫入微信用戶信息時報錯:SQLSTATE[HY000]: General error

SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x90\xA3\xF0\x9F...' for column 'uname' at row 1 說

原创 【 58沈劍 架構師之路】究竟啥纔是互聯網架構“高併發”

一、什麼是高併發 高併發(High Concurrency)是互聯網分佈式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。   高併發相關常用的一些指標有響應時間(Response Time),吞吐量

原创 mysql遠程連接問題

常規問題以下都說到位了: https://www.cnblogs.com/codeAB/p/6391022.html 補充:阿里雲服務器的安全組,出方向需要配置端口,配置好後服務器重啓才生效!!!

原创 關於 ThinkPHP 在 Nginx 服務器上 使用U方法跳轉問題

這個問題已多次遇到,關於tp 框架 使用U 方法跳轉, 在Nginx 服務器上可能會遇到路由跳轉不過去前面帶點(如:./xx) 解決這個問題,可以在tp的入口文件 index.php 裏定義個常量 define('_PHP_FILE_',$

原创 laravel數據庫操作返回值 Eloquent

新增 User::create([]);  成功返回Eloquent對象(包含id,created_at,updated_at和傳入值)   失敗拋出異常 $user = new User(); $user->phone = '139...