原创 MySQL實戰45講學習筆記----加鎖規則

參考資料: MySQL實戰45講--林曉斌   https://www.cnblogs.com/wangjiming/p/10410904.html 學習一下InnnoDB在可重複讀隔離級別下的加鎖規則,基於mysql版本 5.x系列<=

原创 MySQL實戰45講學習筆記----複製表

複製表的方法,將數據從一張表複製到另一張表 創建一個表db1.t,並插入1000行數據,同時創建一個相同結構的表db2.t create database db1; use db1; create table t(id int pri

原创 MySQL實戰45講學習筆記----隨機消息

有一個隨機顯示單詞的功能,每個用戶的級別有一個單詞表,然後這個用戶每次訪問首頁的時候,都會隨機滾動顯示三個單詞。隨着單詞表變大,選單詞這個邏輯變得越來越慢,甚至影響到了首頁的打開速度。 表的建表語句和初始數據的命令如下: mysql>

原创 動手寫操作系統10----內存管理實現

本節實現操作系統可用內存的檢測,分析以及簡單的鏈表內存管理 1.可用內存檢測的實現 使用BIOS 15h中斷來檢測內存,具體步驟如下: 1: 將寄存器ax 賦值爲 0E820h 2 :   將寄存器ebx 初始化爲0,該寄存器的內容會被B

原创 MySQL實戰45講學習筆記----分區表

分區表 分區表的組織形式,創建一個表t: CREATE TABLE `t` ( `ftime` datetime NOT NULL, `c` int(11) DEFAULT NULL, KEY (`ftime`) ) ENG

原创 算法----單詞的壓縮編碼

來道算法題,壓壓驚。 給定一個單詞列表,我們將這個列表編碼成一個索引字符串 S 與一個索引列表 A。 例如,如果這個列表是 ["time", "me", "bell"],我們就可以將其表示爲 S = "time#bell#" 和 inde

原创 算法----LFU緩存

實現最不經常使用(LFU)緩存算法設計並實現數據結構。 它應該支持以下操作:get 和 put。 get(key) - 如果鍵存在於緩存中,則獲取鍵的值(總是正數),否則返回 -1。 put(key, value) - 如果鍵不存在,請

原创 動手寫操作系統9----鍵盤&鼠標中斷實現

鍵盤&鼠標中斷實現 本節主要實現鍵盤中斷和鼠標中斷,鍵盤中斷實現將鍵盤數據顯示到屏幕;鼠標中斷實現鼠標位置的移動。                                                 鍵盤中斷通過主8259A的

原创 PostgreSQL JOIN實踐及原理

                                           PostgreSQL JOIN實踐及原理 最近項目使用了PostgreSQL 簡單學習join語法以及原理,以後有時間搞一下SQLite源碼。 Post

原创 動手寫操作系統11----圖層技術實現

        本節實現圖層技術,之前實現對於內存信息的圖形化展示,但是由於沒有使用內存管理功能,鼠標繪製和字符顯示都是直接往顯存位置處寫數據,這樣就會導致當移動鼠標重繪時直接改變顯存位置數據而將字符數據直接擦除掉。這裏採用圖層技術,即背

原创 MySQL實戰45講學習筆記----表空間回收

數據庫佔用空間太大,把一個最大的表刪掉了一半的數據,怎麼表文件的大小還是沒變? 一個InnoDB表包含兩部分,即:表結構定義和數據。在MySQL 8.0版本以前,表結構是存在以.frm爲後綴的文件裏。而MySQL 8.0版本,則已經允許把

原创 MySQL實戰45講學習筆記----一主多從主備切換問題

在一主多從架構下,主庫故障後的主備切換問題                                         圖1 一主多從基本結構                                           

原创 MySQL實戰45講學習筆記----幻讀

幻讀  在可重複讀級別下,指的是一個事務在前後兩次查詢同一個範圍的時候,後一次查詢看到了前一次查詢沒有看到的行。 InnoDB是用行鎖和間隙鎖來解決幻讀問題的。 建表和初始化語句如下 CREATE TABLE `t` ( `id`

原创 MySQL實戰45講學習筆記----orderby原理

以市民表爲例,假設你要查詢城市是“杭州”的所有人名字,並且按照姓名排序返回前1000個人的姓名、年齡。 假設這個表的部分定義是這樣的: CREATE TABLE `t` ( `id` int(11) NOT NULL, `cit

原创 MySQL實戰45講學習筆記----查詢性能優化1

分享一些由於鎖等待而導致查詢性能慢的情況    MDL鎖  flush  行鎖  一致性讀 構造一個表,有兩個字段id和c,在裏面插入了10萬行記錄。 mysql> CREATE TABLE `t` ( `id` int(11) N