3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL宏观架构与原理

發布時間:2024/9/20 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL宏观架构与原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我唯一知道的就是我一無所知——蘇格拉底

1、Linux安裝MySQL

1.1、安裝參考資料

?

MySQL的刪除:https://blog.csdn.net/weixin_34462581/article/details/113010258

MySQL的安裝:參考官網https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

MySQL的資源:https://dev.mysql.com/downloads/file/?id=484922

MySQL密碼忘記(異常失效):https://www.jb51.net/article/127281.htm

1.2、注意事項

  • 檢查端口3306是否被占用
  • 如果已經安裝過MySQL,并且需要重新安裝,需要前之前安裝的完全卸載。包含mysql相關的文件夾、文件,尤其注意其配置文件/etc/my.cnf必須要刪掉
  • 按照官網安裝即可

netstat -tunlp | grep 3306?

  • 安裝完成之后,記得把用戶角色的遠程訪問權限改一下(localhost->%)

?

1.3、常見問題記錄

1.3.1、密碼意外丟失

?

2、MySQL執行流程與架構

2.1、本節問題:

  • 描述一條查詢語句的執行流程,什么模塊做了什么事情
  • 記錄redo log和bin log,為什么要要用XA兩階段提交?如果redo log直接寫入成功,bin log寫入失敗,會出現什么問題?

?

2.2、MySQL基礎

2.2.1、MySQL服務的基本概念

我們的數據是存儲在服務端,我們使用的工具(eg: navicat)是客戶端。如果要讀取數據,首先要建立客戶端與服務端的連接, 服務端運行3306的端口,客戶端會連接到3306。其次兩端必須要規范協議,消息報文格式等。

2.2.1.1、連接方式 :

  • 長連接(連接一直保持打開,也就是說可以被其他會話、客戶端復用。這樣可以減少創建和釋放連接的消耗,但會消耗服務端的性能),一般這是種通用方式。
  • 短連接(客戶端操作完后,連接馬上close)

?

查看連接數:

? ?SHOW GLOBAL STATUS LIKE 'Thread%';

客戶端跟服務端建立一個連接,對服務端來講就是創建一個線程來處理連接。所以查Thread就是查連接數。這個命令可以差大已經緩存的連接數、已經建立的連接數、已創建的連接數、運行中的連接數

2.2.1.2、如何在客戶端查詢相關配置

  • 舉例:長連接過多久不活動會被釋放掉?
-- 連接的超時時間 SHOW GLOBAL VARIABLES LIKE 'wait_timeout'; -- 非交互式超時時間(沒有界面的),如JDBC程序 SHOW GLOBAL VARIABLES LIKE 'interactive_timeout'; -- 交互式超時時間,如數據庫工具(單位秒,一共8個小時,如果需要加快回收速度,可以調小這個值) -- 允許的最大連接數(并發線程數) SHOW GLOBAL VARIABLES LIKE 'max_connections';

效果:

  • 問題:這些變量在哪找?

https://dev.mysql.com/ ?官網下文檔里系統預設變量可查到。

?

?

2.2.1.3、如何更改相關配置

系統中的變量有兩個級別session、global:

    • session是會話級別,作用域只在當前會話,如果會話的生命周期結束,那么當前session中的配置也會失效。舉例:SHOW VARIABLES LIKE 'max_connections' 默認的是當前會話的級別。
    • global是全局級別

?

修改有兩種方式 :

    • 動態修改
    • 配置文件永久修改 /etc/my.cnf

?

此處以動態配置舉例:

  • 第一步: SHOW VARIABLES LIKE 'autocommit'; 看到是ON

  • 第二步: SET autocommit = off; 在當前會話將ON改為OFF
  • 第三步:SHOW VARIABLES LIKE 'autocommit'; 在當前會話再查一次,看到是OFF。

  • 第四步:SHOW VARIABLES LIKE 'autocommit'; 新開一個會話再查一次,看到還是ON。因為這里的修改是session級別,修改只作用于當前會話,所以再打開一個頁面查詢還是ON。

  • 第五步:總結,當前到操作是session級別,只在當前會話生效。如果要在所有的會話都生效,要在語句中加上global

`SHOW GLOBAL VARIABLES LIKE 'autocommit';`

?

2.2.2、補充說明

  • 通信協議

TCP/IP ? Unix Socket

MySQL的通訊協議文件:/var/lib/mysql.socket

?

  • MySQL用的是半雙工

由于是半雙工的模式,客戶端和服務器的數據接收和發送不能同時進行,必須要等待一個操作全部執行完畢之后才可以下一個操作。因此,一條sql做大量數據的查詢,會帶來網絡和服務的消耗,所以單條sql盡量小粒度的查詢,比如帶上查詢條件(limit,或者業務層代碼寫一個循環進行分批的查詢)。

?

?

2.3、MySQL服務層的主要模塊

2.3.1、查詢緩存

MySQL8之前,mysql服務提供數據的緩存(改配置默認是關閉的),目的是將查詢到的結果以key-value的形式緩存起來,如果下一次遇到同樣的查詢,便可以省去從磁盤獲取數據導致的開銷,以提升吞吐量。

MySQL8已經取消了查詢緩存:

一種說法是不建議使用查詢緩存,因為查詢緩存往往弊大于利。緩存的級別是針對于表的,而不是針對于語句的,如果表中有任意一行數據變化,都會把整個表的緩存清空。所以不建議在數據庫的服務端開啟緩存。這樣,查詢緩存的失效會非常頻繁,只要有對一個表的更新,這個表上的所有的查詢緩存都會被清空。因此很可能你費勁地把結果存起來,還沒使用呢,就被一個更新全清空了。對于更新壓力大的數據庫來說,查詢緩存的命中率會非常低。除非你的業務有一張靜態表,很長時間更新一次,比如系統配置表,那么這張表的查詢才適合做查詢緩存。

有觀點認為,大多數應用都把緩存做到了應用邏輯層,簡單的如一個map的mybatis,復雜的可以用redis或者memcache,直接操作內存遠遠比走網絡訪問快,所以mysql直接拋棄了查詢緩存。

?

2.3.2、解析環節

2.3.2.1、解析器

解析器分為:

    • 詞法解析,把sql語句打碎成一個一個的單詞,包含關鍵字、變量、符號
    • 語法解析,分析語法是否符合規則,比如左邊有括號,右邊一定要有對稱的括號。

(注:詞法和語法解析是非常基礎且常見的功能,比如jvm、json等有會有用到。世面上也已經有比較好的開源的工具)

?

2.3.2.1、預處理器(得到解析樹)

試想一下:

select * from 不存在的表; 由于表不存在會報錯,又或者 select b.* from user a; 由于別名不存在報錯。

那么是在解析時報錯,還是執行的時候報錯呢?

上一節我們知道解析器解析的是詞法和語法,如果要解析校驗數據庫里有哪些表,表里有哪些字段,就要把表的信息存儲起來。那么預處理器就是干這個的。

?

預處理器的作用:

    • 權限
      • 操作的權限,不允許的ip的訪問
      • 用戶的權限,只讀的權限不能寫
    • 語義的解析
      • 表名、字段名、別名錯誤的識別

?

2.3.3、優化器

對語句進行優化,優化查詢效率

2.3.3.1、概念

解析樹的本質:一種可以被執行器執行的數據結構。

那么在解析環節生成的解析樹是否可以直接交給執行器執行了呢?或者說客戶端發送的一條SQL語句是不是一定是服務端執行的SQL語句呢?

事實上,一條SQL語句是有多種執行方式(路徑)的。MySQL服務層有一個基于成本(cost)的模型算法進行計算,找到代價最小的路徑,執行器最終執行的路徑便是進過優化器篩選后的路徑。

?

2.3.3.2、查看執行成本: SHOW STATUS LIKE 'last_query_cost';

?

2.3.3.3、優化器可以做什么事情

舉例:

    • 當a join b,在數據庫的底層沒有辦法同時讀取幾張表,一定是先訪問一張表拿到一些數據,再基于這些數據訪問另一張表達到過濾數據的目的。所以關聯查詢時,必然要決定先查詢哪張表,這張表就是基準表。基準表的決定需要優化器判斷。
    • 條件查詢where a = ? and b < ? and c > ?,每一個字段都有索引的時候,既有單列的索引,又有復合索引,它需要決定要不要使用索引,使用哪幾個索引。
    • 當出現1 = 1恒等式,或者((()))多余的括號,優化器可以自動去掉。

?

但優化器的優化作用是有限的,不能全部依賴優化器。

經過優化器的選擇,最終會生成一條執行計劃。

?

2.3.4、執行計劃(優化器的執行結果,或者叫數據結構)

執行計劃的工具,查看執行路徑

EXPLAIN SELECT * FROM people;

EXPLAIN FORMAT = JSON SELECT * FROM people;

OPTIMIZE trace; -- 執行計劃的開關,信息量非常的大

?

舉例:sql語句最終選定的執行計劃

{"query_block": {"select_id": 1,"cost_info": {"query_cost": "0.65" -- 總開銷},"table": {"table_name": "people", -- 查哪張表"access_type": "ALL", -- 查詢的范圍"rows_examined_per_scan": 4, -- 預估要查多少行"rows_produced_per_join": 4, -- 實際查詢多少行"filtered": "100.00","cost_info": { -- 開銷明細"read_cost": "0.25","eval_cost": "0.40","prefix_cost": "0.65","data_read_per_join": "448"},"used_columns": ["id","name"]}} }

2.3.5、執行器

執行器按照查詢計劃調用存儲引擎,執行查詢

?

2.3.6、存儲引擎

2.3.6.1、概念

我們表面上看到的是數據放在了一個二維表結構里(類比excel),但我們用用navicat等工具查詢對象信息時看到存儲的表類型是InnoDB,表類型就是存儲引擎。并且存儲引擎的使用單位是表,而不是以數據庫為單位,這意味著表的存儲引擎還可以更改。

2.3.6.2、sql查數據庫中所有的表都使用了什么存儲引擎,SHOW TABLE STATUS FROM hc_goods;

(注:沒有指定存儲引擎的表都會默認使用InnoDB。)

2.3.6.3、表類型是存儲引擎,存儲引擎是一種存儲方式,那么在服務器上是怎么體現的呢?

查看數據庫在服務器上位置: SHOW VARIABLES LIKE 'datadir';

來到服務器,可以看到表在服務上是一個文件,且存儲引擎,其文件類型(后綴)不同,此處僅體現了InnoDB的idb文件

?

2.3.6.4、數據庫支持哪些存儲引擎, SHOW ENGINES;

2.3.7、總結

MySQL分為服務層和存儲引擎層。客戶端以各種方式建立連接,在服務層又分為解析環節、優化器、緩存,在存儲引擎層有各種可用的存儲引擎,最終數據在硬件的文件系統。

?

2.4、存儲引擎

InnoDB最初是第三方公司針對MySQL開發的,其自身的存儲引擎是ISAM。

2.4.1、官方網站列舉的存儲引擎

?

2.4.2、MySQL 8.0支持的存儲引擎

  • InnoDB:MySQL 8.0中的默認存儲引擎。 InnoDB是用于MySQL的事務安全(兼容ACID)的存儲引擎,具有提交,回滾和崩潰恢復功能來保護用戶數據。 InnoDB行級鎖(行鎖是更小粒度的鎖,無需升級為更粗粒度的鎖)和Oracle風格一致支持讀寫的并發的操作,可提高并發性和性能。InnoDB將用戶數據存儲在聚集索引中,以減少基于主鍵查詢的I / O。為了保持數據完整性, InnoDB還支持FOREIGN KEY完整性約束。有關更多信息InnoDB,請參見 第15章,InnoDB存儲引擎。
  • MyISAM:這些表占用的空間很小。 表級鎖定 限制了讀/寫運行負載中的性能,因此表鎖通常用于Web和數據倉庫配置中的只讀或主要工作負載中。
  • Memory:將所有數據存儲在RAM中,以便在需要快速查找非關鍵數據的環境中進行快速訪問。該引擎以前稱為HEAP引擎。它的使用場景正在減少;InnoDB使用其緩沖池內存區域,提供了一種通用且持久的方式來將大多數或所有數據保留在內存中,并 NDBCLUSTER為大型分布式數據集提供了快速的鍵值查找。
  • CSV:其表實際上是帶有逗號分隔值的文本文件。CSV表使您可以導入或轉儲CSV格式的數據,以便與讀取和寫入相同格式的腳本和應用程序交換數據。由于CSV表未建立索引,因此通常InnoDB在正常操作期間將數據保留在表中,并且僅在導入或導出階段使用CSV表。
  • Archive:存檔的,沒有索引的表旨在用于存儲和檢索大量很少使用的歷史數據,歸檔或安全審核信息。
  • Blackhole:Blackhole存儲引擎可以接受但不存儲數據,類似于Unix/dev/null設備。查詢總是返回一個空集。這些表可用于將DML語句發送到副本服務器的復制配置中,但源服務器不保留其自己的數據副本。
  • NDB(也稱為 NDBCLUSTER):此集群數據庫引擎特別適合于需要盡可能高的正常運行時間和可用性的應用程序。
  • Merge:使MySQL DBA或開發人員能夠在邏輯上對一系列相同的MyISAM表進行分組并將它們作為一個對象引用。適用于VLDB環境,例如數據倉庫。
  • Federated:提供了鏈接單獨的MySQL服務器以從許多物理服務器創建一個邏輯數據庫的能力。非常適合于分布式或數據集市環境。
  • Example:此引擎作為MySQL源代碼中的示例,說明了如何開始編寫新的存儲引擎。它主要是開發人員感興趣的。存儲引擎是什么都不做的 “存根”。您可以使用此引擎創建表,但是不能在其中存儲數據或從中檢索數據。

?

2.4.3、為什么要設計這么多存儲引擎?

如上節所述,因為有不同的業務場景,對數據的管理和需求是不一樣的。所以誕生了各種各樣的存儲引擎。

如果上述存儲引擎沒有一個能滿足需求,怎么辦?MySQL提供自定義存儲引擎的接口。可以自定義一套存儲引擎。

?

2.5、一條查詢語句是如何執行的?

2.5.1、執行過程

服務層:

1、client的查詢請求來查詢緩存,如果緩存有,則直接返回。

2、解析器進行詞法、語法解析。

3、預處理器判定權限、表、字段、別名是否有錯。

4、優化器,選擇開銷最小的路徑

5、執行計劃,選擇后的執行路徑

6、執行器執行執行計劃調用存儲引擎,做查詢

存儲引擎層:

1、引擎讀取磁盤的數據文件,將數據交給執行器。執行器把數據寫入緩存,并且返回給客戶端(如果有緩存放到緩存,如果沒有緩存直接返回給客戶端)。 ? ?

2.6、一條更新語句是如何執行?

Mybatis源碼的執行器Executor只有doQuery和doUpdate。MySQL也是一樣的,update就包含了增刪改。與查詢不同的是,當從存儲引擎拿到數據之后,將數據加載到內存(因為數據在磁盤里,只有將數據加載到內存中才能修改操作)

?

問題:

是不是需要操作多大的數據,就要一次性從磁盤加載多少數據到內存?比如需要操作5kb的數據,就一定要加載5kb的數據到內存?

我們知道磁盤的IO讀寫相對內存是非常慢,在加上這些數據可能在磁盤上分布在不同的位置,意味著很多次尋址、很多次IO操作,這將非常的耗時。

?

2.6.1、page

預讀取(為解決上述問題),當訪問到磁盤的一塊位置,就認為周圍的數據也會被讀取,所以會讀取一個固定大小的范圍(意味著,可能要比想讀取的數據大一些),單位page(頁,邏輯單位),在InnoDB默認是16kb(注意區別,與操作系統中從磁盤加載到內存的大小4kb是兩碼事),如果想修改,只能修改源碼,重新編譯部署。

?

每一次對于頁的操作也需要從磁盤上加載到內存中,會不會也有IO很慢的問題,那么能不能緩存起來呢,下一次就不用從磁盤中讀了?當然可以,InnoDB里有內存的緩存池(buffer pool),從磁盤加載數據到內存中時,會將數據記錄在buffer pool中,下次再讀時可以直接從buffer pool拿到數據,提升數據的讀寫效率。如果需要修改(先讀再寫)的數據以及在內存的buffer pool中存在了,會先修改內存中的數據page。如果內存中的page與磁盤的page不一樣,則內存中的page叫dirty page(臟頁,產生本質是刷臟時間差和事務沒有提交)。一旦后臺線程開始空閑,就將臟頁數據刷到磁盤文件中,又叫刷臟。

?

2.6.2、redo log

因為刷臟不是實時的,如果buffer pool的內容還沒有刷到磁盤,這個時候數據庫重啟了或者宕機了,那么怎么保證緩沖池中數據頁的安全性?沒有好的辦法,必須要考慮持久化,InnoDB內存數據頁持久化的機制是redo log(重做log),當數據加載到內存中時,也會記錄在redo log中。當數據庫宕機重啟后,會依據redo log里的臟頁恢復到磁盤文件中,在InnoDB中叫做crash safe(崩潰恢復),并且事務中ACID中的D(持久性,durability)就是靠redo log實現的。

?

redo log為了提升日志的讀寫效率,也分為兩塊,內存和磁盤中各有一塊。

2.6.2.1、redo log在磁盤上體現為什么樣的文件,在安裝目錄下/var/lib/mysql

查詢redo log SHOW VARIABLES LIKE '%innodb_log%'; 當然,這些都是可修改的。

為什么客戶的更新現在內存緩沖池和redo log寫一遍,再寫到磁盤數據文件。為什么不直接寫到磁盤?

記錄redo log文件和磁盤數據文件有區別,在于既可以保證數據的安全性,還可以減少磁盤刷盤尋址的時間以降低開銷,提升了吞吐量。

順序IO,寫入redo log是追加的過程,不需要尋址

隨機IO,每一次都有尋址的時間

?

redo log的特點:(注意redo log的存在不是為了向數據文件寫入數據,只是作為崩潰恢復時使用)

1、redo log是InnoDB獨有的

2、redo log是物理日志,記錄的是數據頁里面做的修改,是絕對的

3、redo log的大小是固定的,不斷覆蓋,寫入方式如下

2.6.2、undo log(撤銷日志、回滾日志。redo log是物理日志,undo log是邏輯日志)

記錄的是事務(增刪改)發生之前數據狀態,如果在增刪改過程中發生了異常,則會基于undo log回滾事務,保證了原子性(全部成功,,全部失敗)

undo log相關的參數: SHOW VARIABLES LIKE '%undo%';?

?

2.6.3、一條更新語句是如何執行的

redo log + undo log配合使用

1、存儲引擎層負責從RAM或DISK拿到數據,返回給服務Server層

2、修改這一行數據

3、記錄undo log、redo log

4、調用存儲引擎的接口,在內存buffer pool中修改數據page

5、commit

?

redo log兩階段的記錄prepare、commit(跟XA的兩階段提交沒有任何關系)

?

2.7、InnoDB架構

?

?

?

2.7.1、MySQL sever層也有一個日志文件binlog(邏輯日志---記錄的是相對的操作)

  • 記錄的是DDL,DML語句,在哪個數據頁的哪條數據做個什么樣的改動。
  • 沒有固定大小限制,內容可追加(binlog用于數據恢復,而redo log只能做崩潰恢復,就是因為,內容不可追加,之前的數據會被覆蓋)
  • Server層實現,可以被所有存儲引擎使用
  • 用于數據恢復和主從復制

作用:

1、主從同步

2、實現數據的恢復。既然記錄的是增刪改語句的邏輯日志,從最晚的一次全量備份的時間,解析binlog,把drop的語句剔除掉后,將其他的DDL、DML重新執行一遍

?

?

redolog是prepare,binlog無記錄。回滾,因為數據的事務是以binlog為準的。

redolog是prepare,binlog有記錄。而數據本身的事務沒有commit,則會利用binlog的記錄恢復事務,將事務提交。

?

2.7.2、主從同步的原理(擴展)

1、從節點的I/O Thread請求讀取主節點的binlog

2、主節點的Log Dump Thread把數據發給從節點

3、從節點解析后寫入中繼日志

4、SQL Thread讀取中繼日志的數據

5、將解析后的SQL在從節點的DB中重放(重新執行)一遍

?

?

?

?

3、MySQL索引原理與使用原則

3.1、數據庫索引的本質

數據庫索引,是數據庫管理系統(DBMS)中一個排序的數據結構,以協助快熟查詢、更新數據庫表中數據。

沒有數據庫時,要查找一條數據,需要進行全表的掃描,類似從一本沒有目錄的書里找到指定的章節。而索引就相當于給書加了一份目錄。

3.1.1、索引類型

normal,沒有任何限制

unique,要求字段的值不重復

主鍵索引,是unique的一種特例,在unique的基礎上要求不能為空

Full text,全文索引。

如果我們在表設計時用text存放大文本,日后需要用關鍵字模糊查詢匹配的記錄,如何解決? ? ?

    • like '%關鍵字%'
    • 建立全文索引,語法:select * from fulltext_test where match(列名) against ('關鍵字' )
      • MATCH (col1, col2,...) AGAINST (expr [search_modifier]) ?-- where條件后使用
      • 但這不是合適的辦法,用ES更優

?

3.1.2、索引存儲結構

InnoDB顯示支持的索引結構只有B+Tree(雖然有hash類型的索引結構,但只是在InnoDB buffer pool隱式的使用,由于hash key-vlaue的本質和hash沖突的先天短板,因此不能做范圍查詢和大批量數據的命中,其作用僅限為小批量數據的快速查找——O(1))。

?

3.1.2.1、各數據結構如果作為索引選型的區別

舊金山大學數據結構可視化網站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

?

分析一下,其他數據結構為什么不合適。

  • 有序數組

沒錯有序數組檢索很快,但是索引的增刪改

  • 鏈表

鏈表增刪改很快,但檢索復雜

  • BST——Binary Search Tree,二叉查找樹

沒錯BST的確可以快速查找和快速變更。但為什么不選擇BST呢?假如,按照大小順序,有序的構建二叉查找樹數,我們會發現所謂的BST變成了一個單鏈表,以這種特殊場景為例,極端情況下,BST檢索的復雜度是O(n)。所以BST不適合做索引。

  • AVL Tree——Balance Binary Search Tree(平衡二叉查找樹。發明人名字的簡寫是AVL,所以又叫AVL Tree

AVL的特點是:左右子樹的深度差的絕對值不能超過1。所以AVL避免了BST變成單鏈表的問題。

看來似乎已經能滿足索引的基本要求了,那么我們假定使用AVL做索引來分析可能會出現什么問題。

設定每個節點(node),包含三塊數據:鍵值、數據的物理地址、指向左右子節點的指針,構建索引的數據如下圖:

問題:

    • 索引的內容本質上是通過存儲引擎放到磁盤上,比對時要把各節點(Node=Page 16KB)的內容拿到server層比較,也就是說需要比對多少節點就要發生多少次IO。那么我們來看AVL,一個數據就是一個Node,如果對大量數據做索引,會導致AVL的深度很高,這也意味著要比對的節點很多,因此IO的次數也多,導致浪費性能。
    • MySQL的數據讀取單位是page,一個page是16KB,顯然在當前Node的設定(鍵值、物理地址、左右子樹指針)是遠遠達不到16KB,所以會很浪費空間,且導致樹的深度過高。

結論:

AVL不是索引數據結構的最好選擇。

?

  • B Tree——Balanced Tree(B 樹,多路平衡查找樹

如果page多放點節點的內容(放多個鍵值;放更多的指針。或者說把AVL變成分更多岔的樹),是不是就解決了AVL的2個問題:1、page浪費;2、深度過高。

B Tree的特點:度=關鍵字數+1執行分裂、合并保證B樹的平衡(索引中也是Page的分裂和合并)

舉例:

比如有關鍵字a、b,且a<b,則子樹指針指向關鍵字的區間為(-∞,a),(a,b),(b,+∞)

B Tree比AVL更適合做索引的數據結構,那么我們假定使用B Tree做索引來分析可能會出現什么問題。

設定每個節點(node),包含三塊數據:鍵值、數據的物理地址、指向各子節點的指針,構建索引的數據如下圖:

還不夠完美,問題:

    • 范圍查找時,需要反復遍歷樹,效率低下。
    • 每次檢索需要比較的Node次數不同(IO次數不同),效率不穩定。【注,假如我們知道每次查詢都會比較的次數為N,且某一次查詢比較的次數是n,如果n=N,可以確定的是一定成功】

?

?

  • B+ Tree——B Plus Tree(加強版多路平衡查找樹)

B+ Tree的特點:度=關鍵字數;(B樹是:度=關鍵字數+1)。

舉例:

比如有關鍵字a、b、c,且a<b<c,則子樹指針指向關鍵字的區間為[a,b),[b,c),[c,+∞)

?

跟B樹不同的地方:B樹的度=關鍵字數+1,B+樹的度=關鍵字數,因此同樣數量的數據構建出的索引結構,相比B+樹的深度更低,深度低意味著更少的比較次數,等于進一步降低IO的次數。

B+樹在索引數據結構的使用中,只有葉子節點才放物理地址(永遠在葉子節點,這樣每次IO的次數是固定的,且是可預知的)。并且葉子節點的page和page之間有雙向指針(讓葉子節點形成了有序的鏈表結構),便于范圍查詢(排序)。如果沒有這個雙向指針,將會多次遍歷才能找到一個范圍。

?

3.1.2.2、為什么選擇B+Tree

  • B Tree能解決的問題,B+Tree都能解決

B Tree解決了什么問題:AVL(平衡二叉查找樹)對page容量的浪費、深度過高。減少了比對次數(比對時,需要存儲引擎層將數據page加載到內存,然后由MySQL服務層執行比對),同樣減少了IO操作。增加了性能。

  • 掃庫、掃表能力更強

葉子節點page頁的雙向鏈表,在范圍查找或全量查詢時,不用對數做多余的遍歷。

  • 磁盤讀寫能力更強
  • 排序能力更強
  • 效率更加穩定
    • 每次的比較次數都是可預期
    • 由于物理地址都在葉子節點,不會出現AVL、B Tree時,有的在深度為1時完成查詢,有的在深度為n時結束查詢的問題。所以效率穩定。

?

3.1.3、特殊的索引方法——Hash

3.1.3.1、hash索引簡介

特點:

k-v形式(如下圖),時間復雜度=O(1),也因此我們在表中看起來順序排列的數據,經過散列后分布在磁盤上是亂序的,所以不支持排序和范圍查詢。只能做k=?的查詢

hash天生的缺陷:

hash沖突,需要用額外的方式解決,但也增加了復雜度,如再hash法、鏈地址法。

?

3.1.3.2、hash索引在InnoDB中的使用

在InnoDB中是不能使用hash建立索引的(存儲引擎選用MEMORY時可以支持hash索引),親手驗證一下:

  • 保存前,注意索引方法是HASH

  • 保存后,索引方法會自動變為BTREE

但InnoDB的確隱式的使用了hash做索引,在哪里用的呢?回到InnoDB的架構圖(紅框數據緩沖池),為提升內存緩存池的熱點數據頁的訪問速度,InnoDB自動建立的hash索引,是無法人為干涉的。

3.1.4、補充

為什么索引不考慮紅黑樹?

這么多定義約束,目的是:最長的路徑不超過最短路徑的2。

如果選為數據庫索引的數據結構,檢索的次數是不固定的,同理導致IO次數不固定,因此也可以說效率不穩定。

?

3.2、索引在不同存儲引擎中的實現

3.2.1、不同存儲引擎的存儲文件

3.2.1.1、MyISAM

主鍵索引

?

輔助索引

主鍵索引輔助索引都在索引的文件

?

3.2.1.2、InnoDB,索引即數據

聚簇索引:索引鍵值邏輯順序與表數據行的物理順序一致。因此,主鍵索引一定是聚簇索引,其他的索引都叫二級索引英文字典,第一個字母是第一個索引

一張表沒有主鍵

?

3.2.1.3、聚集索引和二級索引

每個InnoDB表都有一個特殊的索引,稱為聚簇索引 ,用于存儲行數據。通常,聚簇索引與主鍵同義 。為了從查詢,插入和其他數據庫操作中獲得最佳性能,您必須了解InnoDB如何使用聚簇索引為每個表優化最常見的查找和DML操作。

  • 在表上定義一個PRIMARY KEY時,InnoDB將其用作聚簇索引。你要為創建的每個表定義一個主鍵。如果沒有邏輯唯一且非空的列或列集,請添加一個新的 自動遞增 列,其值設為自動填充。
  • 如果您沒有為表定義PRIMARY KEY,當所有列都是NOT NULL 時,MySQL會在所有鍵列所在的位置找到第一個UNIQUE的索引,并將其用作 InnoDB的聚集索引。
  • 如果表即沒有索引PRIMARY KEY也沒有合適的 UNIQUE索引,則InnoDB 在內部生成一個隱藏的聚集索引GEN_CLUST_INDEX,該索引是包含行ID值的合成列 。這些行按照InnoDB分配給該表中各行的ID排序 。row_id是一個6字節的字段,隨著插入新行而單調增加。因此,按行ID排序的行實際上是按物理順序排序。如下圖所示(如果有主鍵,則以主鍵作為rowId,下圖便是這種情況)

InnoDB的表里是不可能沒有索引的(索引即數據,數據即索引)。

聚集索引如何加快查詢

通過聚集索引可以快速訪問行,因為檢索索引可以直接到達該行的page數據頁。如果表很大, 當與索引記錄中使用不同page頁保存數據的其他存儲結構比較時,聚集索引體系結構通常可以節省磁盤I / O操作 。

二級索引如何與聚簇索引建立聯系

除聚集索引之外的所有索引都稱為 輔助索引。在InnoDB中,輔助索引中的每個記錄都包含該行的主鍵列,以及為輔助索引指定的列。 InnoDB使用此主鍵在聚集索引中搜索行。

如果主鍵很長,則輔助索引將使用更多空間,因此設置較短的主鍵是有利的。

只有在主鍵索引的葉子節點才上存儲完整的數據,輔助索引的葉子節點存的是主鍵的值。

要使用輔助索引查找數據,要先在輔助索引的B+Tree檢索一遍得到主鍵索引的值,然后再主鍵索引的B+Tree再檢索一遍才能得到最終的數據。所以,輔助索引的效率要比主鍵索引的低。

InnoDB只有一個文件(xxx.ibd),所以主鍵索引的B+Tree、其他所有輔助索引的B+Tree都在這個文件上。

?

問題:輔助索引的葉子節點,為什么放的是主鍵索引的值,而不是數據的物理地址?

原因:上文索引的數據結構有說過,B+Tree和B Tree一樣是依靠page的分裂、合并保證樹的平衡,Page頁的變化,即等于物理地址的變化,顯然不可行。

?

3.3、創建和使用索引的原則

選擇合適字段:頻繁被where、order等做為條件的字段。

3.3.1、列的離散度

離散度公式:count(distinct(column_name)) : count(*),即某一列不重復的值除總行數,簡而言之,選擇值重復低的列。

如下圖所示,如果索引值的重復率太高(離散度低),再檢索索引時,與根節點比較后,因為子節點都一樣,無法抉擇下一輪是與哪個子節點比較,這樣的代價非常大。極端情況下,還不如把整個表都比較一遍,此時存儲引擎甚至會放棄使用索引。

?

3.3.2、聯合索引

3.3.2.1、概念

創建name+phone聯合索引:ALTER TABLE people ADD INDEX `comidx_name_phone` (`name`, `phone`);

構建所得索引的數據結構如下

?

順序建立包含a、b、c三個列的聯合索引,功能上相當與建立了a、ab、abc三個索引。因此,使用聯合索引要求最左匹配原則,參考下圖。如果不是按照創建字段的順序使用,則達不到使用聯合索引的目的。

?

3.3.2.2、問題:如下sql,哪些能用到索引:

  • EXPLAIN SELECT * FROM people WHERE `name` = '張三' AND phone = '100'; ? 顯然可以,查詢條件完全符合聯合索引的字段,且滿足最左匹配原則。

  • EXPLAIN SELECT * FROM people WHERE phone = '100' AND `name` = '張三'; ?可以。雖然查詢條件符合聯合索引的字段,但不滿足最左匹配原則。但是優化器會自動調整條件的順序,達到使用聯合索引的目的。

  • EXPLAIN SELECT * FROM people WHERE `name` = '張三'; ?可以,聯合索引的最左匹配原則,相當于建立了一個name的索引。

  • EXPLAIN SELECT * FROM people WHERE phone = '100'; ? 不滿足最左匹配原則。

3.3.2.3、假如有如下場景,應該如何創建索引

第2個就夠了,由于聯合索引的最左匹配原則,相當于額外獲得了name的索引,因此沒必要創建多余的name索引

?

3.3.3、覆蓋索引

3.3.3.1、什么是回表?

上文提過,在使用輔助索引時:

第一步、查輔助索引得到主鍵索引的值。

第二步、利用主鍵索引的值去查主鍵索引得到數據。

其中第二步便是“回表”。

3.3.3.2、什么是覆蓋索引?

要查詢的數據列,已經包含在所用到的索引里。

比如,創建了name的索引,然后select name from people where name = ?,這個查詢操作在輔助索引的Tree上就能實現,不需要回表,這就叫覆蓋索引。

舉例,已創建了name+phone的聯合索引,下列查詢哪些是覆蓋索引?

  • EXPLAIN SELECT NAME FROM people WHERE `name` = '張三'; ?

-- 可以,輔助索引的Tree能滿足查詢

  • EXPLAIN SELECT NAME FROM people WHERE `name` = '張三' AND phone = '100';

-- 可以

  • EXPLAIN SELECT NAME FROM people WHERE phone = '100';

-- 可以,優化器的操作,的確不符合最左匹配原則,但如果不用聯合索引,就要從主鍵索引里查,既然兩個索引的樹都能查到name,從概率上講,聯合索引的tree的開銷更小

  • EXPLAIN SELECT * FROM people WHERE `name` = '張三';

-- 不可以,雖然聯合索引上存在name=張三,但沒有其他數據,還是要回到主鍵索引的樹去查

?

3.3.4、sql索引使用常識

  • 表的索引越全越好,因為不管什么情況都能用到索引,對嗎?

不對

1、占用磁盤。索引也是數據結構,需要使用存儲空間保存。

2、更新數據變慢,會發生大量的索引結構的調整。

  • 為什么不要在性別字段上建索引?

離散度低,做索引時開銷大

  • 模糊查詢like abc%,like %abc%,like %abc都用不到索引?
    • like abc%,可以,索引的最左前綴。
    • like %abc%,like %abc,不一定,當索引條件下推時會使用(ICP--Index Condition Push Down)。

我們知道獲取數據是在存儲引擎層,過濾、排序、比較等邏輯操作在server層。

當用不到索引的條件(比如like條件)先在存儲引擎層過濾時開銷更小時,會把這條件先在存儲引擎過濾,叫做索引條件下推。

舉例:

  • 不要使用select *,寫明具體的查詢字段。
    • 用不到覆蓋索引
  • 負向的查詢!=、<>、NOT IN、NOT LIKE能否用到索引?
    • NOT LIKE,不能

    • !=、<>、NOT IN,可以

用不用索引,是由基于成本的優化器(Cost Based Optimizer)決定的。

?

3.3.5、長字段如何建索引

長字段建立索引,1、page頁的容量更小,大量數據時比較的次數多,IO多。2、索引占用大量磁盤空間。

  • 可以截取定長字段建立索引
  • 也可對該字段做hash運算,再用hash字段做索引

?

3.3.6、為嘛推薦使用遞增的id作為主鍵索引?雪花算法?

InnoDB使用的是聚集索引,數據記錄在主鍵索引的葉子節點上,且葉子節點是彼此鏈接且順序排列。如果使用遞增主鍵,對于主鍵索引的B+Tree,每新增一個主鍵,對于B+Tree的構建,其page頁的分裂與合并對于包含數據的子節點,只需在最后一個page后續上當前需要插入的頁,在物理結構上是相對連續的,有益于磁盤的使用效率。如果是非自增的隨機主鍵,主鍵索引葉子節點page頁和非葉子節點的page的分裂與合并也是隨機的,造成更大的IO開銷。

1、主鍵自增時,會按照順序寫滿每一個頁。而主鍵隨機時,必然會發生插入已經寫滿的page頁,將導致大量的page的分裂合并的開銷

2、為什么是主鍵索引

3、相對其它互斥的主鍵索引占用的空間小

4、MySQL事務與鎖詳解

  • 問題1:事務的特性原子性,隔離性,持久性是通過什么技術實現的?

原子性,借助undo log,實現回滾,達到全部失敗的目的。沒有異常就全部成功。

隔離性,利用事務的隔離機制,解決數據并發讀取的問題。為了保證數據讀取的一致性,使用LBCC和MVCC(僅有RR和RC使用)技術對數據庫加鎖。

持久性,數據庫崩潰時利用redo log和雙寫緩沖,保證事務能夠恢復,

  • 問題2:三種事務并發帶來的問題,與四種事務隔離級別的關系。

三種問題分別是臟讀、不可重復讀、幻讀。

四種隔離級別是未提交讀、已提交讀、可重復度、序列化。

RU:事務未提交的數據對其他事務是可見的,未解決任何并發問題。

RC:事務開始后能看見其他事務已提交的的修改,解決了臟讀,但會出現不可重復讀。

RR:在同一事務中多次讀取同樣的數據結果是一樣的,解決了臟讀和不可重復讀。在InnoDB中由于RR的MVCC技術中使用了間隙鎖,該鎖本身就對插入阻塞,所以不存在幻讀的情況。

Serializable:事務中最高的隔離級別,強制事務串行執行。雖然有效抑制了并發問題的發生,但極大影響并發度。所以,一般不使用。

4.1、什么是數據庫事務

數據庫事務的場景,增刪改,@Transaction、xml、AOP

維基百科的定義:事務是數據庫管理系統(DBMS)執行過程中的一個邏輯單位(前文說過,page也是邏輯單位,是不可拆分的),由一個有限的數據庫操作序列構成。

兩個關鍵點:

  • 它是數據庫最小的工作單元,是不可以再分的(所有的 CUD 操作都是事務,即使單條 SQL)
  • 它可能包含了一個或者一系列的DML語句,包括 insert delete update。(單條DDL(create drop)和 DCL(grant revoke)也會有事務)

?

哪些存儲引擎支持事務,InnoDB,NDB(一個集群的存儲引擎),也是5.5之后放棄MyISAM的誘因

4.2、數據庫事務的四大特性

4.2.1、事務的四大特性:

  • 原子性,Atomicity 最小的邏輯單位,事務的多個DML作為一個整體,不可分隔執行。對數據庫的一系列的DML操作,要么都成功,要么都失敗。

實現原理,在InnoDB中依賴 undo log(記錄的是事務(增刪改)發生之前數據狀態)回滾,將數據恢復到原來的版本。

?

  • 一致性 Consistency,指的是數據完整性的約束不會被破壞,事務執行的前后都是合法的數據狀態。

完整性約束包含:數據庫自身的完整性約束(比如主鍵必須是唯一的,字段長度符合要求),用戶自定義的完整性約束(通常在代碼中控制)。(賬戶A-100,B+50,轉賬A0-50,B0+50)

?

  • 隔離性 Isolation,各事務是個邏輯單位,包含多個dml,事務之間,的dml語句并發執行,互相不干擾。在數據庫里面會有很多的事務同時去操作同一張表或者同一行數據,必然會產生一些并發或者干擾的操作,那么我們對隔離性的定義,就是這些很多個的事務,對表或者行的并發操作,應該是透明的,互相不干擾的。

?

  • 持久性 durability,事務提交成功,寫入到磁盤后狀態應該是永久的。即使數據庫中途崩潰(崩潰恢復redo log)、重啟后恢復到之前的狀態

雙寫緩沖,重要特性。頁的備份

操作系統的page是4k,數據庫的page是16k。當數據從內存向磁盤寫時,需要寫4個操作系統的page才能寫完。假設寫完第一個page時數據庫崩潰,那么16k的數據庫頁也僅被寫入了4k,如果崩潰,再恢復由于page已經不完整,所以不能再寫入。所以要把數據庫頁做個備份,叫雙寫緩沖。

?

原子性、隔離性、持久性都是為了實現一致性。

?

4.2.2、數據庫如何開啟一個事務

SELECT VERSION(); -- 查看數據庫版本SHOW VARIABLES LIKE '%ENGINE%'; -- 查看存儲引擎SHOW GLOBAL VARIABLES LIKE 'tx_isolation'; -- 查看事務隔離級別

?

如何開啟事務?

  • 單條增刪改,自動開啟,自動提交。如果結果不提交,是個在內存里臟數據。

SHOW VARIABLES LIKE 'autocommit'; ?-- 查看是否開啟自動啟用事務?

  • 手動開啟 ?
    • BEGIN;
    • START TRANSACTION;
-- BEGIN; -- 開啟事務 START TRANSACTION; -- 開啟事務,這兩種都可以用,但start命令可用更多的參數 UPDATE people SET `name` = '張三123' WHERE id = 1; ROLLBACK; -- 回滾 -- COMMIT; -- 提交

?

如果事務執行一半,會話斷開,事務回滾。

事務結束的時候,事務所持有的鎖就會釋放。

?

?

4.2.3、事務并發問題

只要涉及增刪改都會有事務,時時刻刻會有很多事務在執行。事務并發操作同一行數據,就會導致并發問題,隔離性怎么實現?(不要跟事務隔離級別混淆)

事務并發問題:

  • 臟讀,讀到了另一事物未提交的結果,重點是未提交被讀到。

事務A有兩次讀操作,先讀到age=16,事務B執行更新(事務尚未結束,數據還在內存中),事務A再次讀取到age=18。即事務A讀到事務B尚未提交的數據。

P1 ("Dirty read"): SQL-transaction T1 modifies a row. SQL-transaction T2 then reads that row before T1 performs a COMMIT.

If T1 then performs a ROLLBACK, T2 will have read a row that was never committed and that may thus be considered to have never existed.

  • 不可重復度,在同一時間內,一樣的查詢語句先后讀到是另一事物未提交和提交后的結果。重點是已提交導致兩次讀結果不一致。

事務A有兩次讀操作,先讀到age=16,事務B執行更新并且事務提交,事務A再次讀取到age=18。即事務A讀到事務B提交后的數據。

P2 ("Non-repeatable read"): SQL-transaction T1 reads a row. SQL- transaction T2 then modifies or deletes that row and performs a COMMIT.

If T1 then attempts to reread the row, it may receive the modified value or discover that the row has been deleted.

  • 幻讀,范圍查詢時,在其他事務插入的數據的前后,讀的結果不同。

事務A先讀到1條數據,事務B執行插入并且事務提交,事務A再次讀取到2條數據。即事務A先后兩次讀到結果數不同。

P3 ("Phantom"): SQL-transaction T1 reads the set of rows N that satisfy some . SQL-transaction T2 then executes SQL-statements that generate one or more rows that satisfy the ?used by SQL-transaction T1.

If SQL-transaction T1 then repeats the initial read with the same, it obtains a different collection of rows.

怎么區分臟讀、不可重復讀、幻讀:

臟讀:讀到另一事物未提交的數據

不可重復讀:在另一事物做delete、update且提交時,先后讀到的數據不一樣,影響的是精確查詢的結果。

幻讀:在另一事物做insert且提交時,先后讀到的數量不一樣,影響的是范圍查詢的數量。

?

4.2.4、事務隔離級別

事務并發的三大問題其實都是讀一致性問題(明明是相同的查詢操作,但是讀到了不同的結果)。作為服務提供方,必須由數據庫提供一定得事務隔離機制來解決,保證數據一致性的問題。所以,有數據庫的專家達成共識聯合制定了一個標準,建議數據庫廠商一定程度上實現數據一致性的問題。

SQL92 ANSI/ISO標準:http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

__Table_9-SQL-transaction_isolation_levels_and_the_three_phenomena_

?

_Level__________________P1______P2_______P3________________________| READ UNCOMMITTED | Possib|e Possib|e Possible || | | | || READ COMMITTED | Not | Possibl| Possible |Possible| REPEATABLE READ | Not | Not | Possible || | Possib|e Possib|e || | | | || SERIALIZABLE | Not | Not | Not Possible ||______________________|_Possib|e_Possib|e_________________________|| | | | |

串行化,所有的事務都要排隊執行,所以就不會再有事務隔離性可能出現的3種現象。缺點,極大降低數據庫并發度。

?

在InnoDB默認的數據庫事務隔離級別RR中,已經解決了幻讀的問題,所以不需要用Serializable這么高的隔離級別,而且會帶來較高的并發度。

怎么解決幻讀的?使用了間隙鎖,阻塞插入,所以避免幻讀。

?

如果要解決讀一致性問題,保證一個事務中前后兩次讀取的數據結果一致,實現事務隔離,應該怎么做?

方案:

  • 在讀取數據前對其加鎖,阻止其他事務對數據進行修改(LBCC--Lock Based Concurrency Control,基于并發控制的鎖)。問題:為了讀而阻塞了寫,導致并發度降低。適合需要加鎖的讀(當前讀),比如要求讀取最新的數據。
  • 快照,生成一個數據請求時間點的一致性數據快照(SnapShot),并用這個快照來提供一定級別(語句級或事務級)的一致性讀取(MVCC--Multi Version Concurrency Control,多版本的并發控制)

MVCC的思想,只能查找創建時間小于等于當前事務ID的(已提交的)數據,和刪除時間大于都去哪干事務ID的行(或未刪除)。

MVCC用在已提交讀RC和可重復讀RR,為什么在已提交讀RC還會出現不可重復讀幻讀,:

RR的快照建立的時間是第一次查詢的時候,所以未提交的事務和其后的事務都是不能看見的,

RC的快照建立的時間是當前select,所以能看見其他事務已提交的數據。具體的機制是兩種隔離級別下的ReadView的差異。

?

簡單單一的select是快照讀

存在加鎖的for update或DML的事務中select是當前讀

4.2、MySQL中InnoDB鎖的基本類型

官網InnoDB鎖的介紹:https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html

4.2.1、行鎖與表鎖

4.2.1.1、行鎖

  • 共享鎖,又稱讀鎖,簡稱S鎖

指多個事務對于同一數據可以共享一把鎖,都能訪問到數據,但只能讀不能改(如果修改,可能會發生死鎖)。

加鎖方式: SELECT * FROM people WHERE id = 1 LOCK IN SHARE MODE;?

釋放鎖方式:事務結束

驗證:分別在兩個會話里對同一行數據加鎖,都能加鎖成功

  • 排他鎖,又稱寫鎖,簡稱X鎖

排他鎖不能與其他鎖并存,如果一個事務獲取了一個數據行的排他鎖,其他事務就不能再獲取該行的鎖(共享鎖,排他鎖),只有獲取到排他鎖的事務能對數據行進行讀取和修改。

加鎖方式:

    • 自動:delete、update、insert默認加上X鎖
    • 手動:SELECT * FROM people WHERE id = 1 FOR UPDATE;

釋放鎖方式:事務結束

驗證:在會話1中,自動給改行數據加一個排他鎖,在會話2中分別嘗試加共享鎖和手動排他鎖都被阻塞,無法獲取鎖,需要手動停止。

  • 官網里的其他行級別的鎖:意向共享鎖(IS)/意向排他鎖(IX)

意向鎖是數據庫存儲引擎自己維護的,用戶無法手動操作意向鎖。

    • 意向共享鎖(IS--Intention Shared Lock):指事務準備給數據行加共享鎖,也就是說給數據行加共享鎖前,必須先獲得該表的IS鎖(表級別的意向的共享鎖)
    • 意向排他鎖(IX--Intention Exclusive Lock):指事務準備給數據行加排他鎖,也就是說給數據行加排他鎖前,必須先獲得該表的IX鎖(表級別的意向的共享鎖)

干嘛要鎖定一張表呢?

事務要成功的給一張表加上表鎖,前提必須是:沒有其他任何事務已經鎖定了該表的任意一行數據。

如何確認數據沒有被加鎖?比如全表掃描,一行一行確認沒被加鎖,但是并發場景下不可避免一行數據在掃描中途被加鎖,顯然是不可行的。意向鎖就是解決這個問題的辦法,相當于表是否被加行鎖的標志,類比火車衛生間的燈,只要標識未被加鎖便可以后續操作,提升了加鎖的效率。

驗證:會話1給數據行加排他鎖, 存儲引擎會自動鎖表。會話2手動鎖表被阻塞。

4.3、InnoDB行鎖到底鎖住了什么

鎖的作用:解決資源競爭的問題。

鎖住了什么:一行數據?一個字段?

4.3.1、鎖的原理

  • 沒有索引,兩個會話,select ... where name = 'a' for update和select ... where name = 'b' for update先后執行后,發現會話2失敗,證明是鎖表。
  • 主鍵索引,兩個會話,select ... where id= 1 for update和select ... where id= 2 for update先后執行后,發現都可以查詢,證明是鎖行。
  • 主鍵索引+唯一索引,兩個會話,select ... where id= 1 for update和select ... where name = 'b' for update先后執行后,發現都可以查詢,證明是鎖行。

鎖的是聚簇索引

1、沒有索引為什么會鎖表?

聚簇索引:主鍵索引、第一個唯一索引、rowId。當沒有索引時加排他鎖查詢,需要全表掃描,因此會鎖住所有的rowId。

2、通過唯一索引加鎖,為什么會阻塞主鍵索引的加鎖?

二級索引加鎖,先會把name字段鎖住,接著把id鎖住

4.4、行鎖的算法:鎖住了什么范圍

假設表里已有id=1、4、7、10的記錄。即索引記錄有1、4、7、10。由這四個存在的索引記錄隔開的區間,叫間隙。由間隙組成的左開右閉的區間叫臨鍵。

無論用的哪種查詢(范圍查詢或者等值查詢),只要沒有命中任何一個索引,就會鎖住兩個記錄之間的區間。查詢的相同間隙鎖(select ... for update)不排斥,因為本來就沒有數據,排斥也沒有愿意。 但是排斥插入

?

4.5、總結

  • Read Uncommited,不加鎖。生產中不會用到。
  • Serializable,所有的select語句都會被隱式的轉化為select ... in share mode,會和update、delete互斥(因為是排他鎖,排他鎖存在時不允許有任何鎖)。生產中不會用到。

?

?

?

?

5、MySQL性能優化總結

優化從何入手?

硬件的優化,操作系統的配置:基于硬件的實際情況調優。

操作系統、數據庫配置

架構層次,緩存,集群,讀寫分離,分庫分表

5.1、連接問題優化

客戶端與服務端簡歷連接,可能有什么問題?

服務端:連接數不夠,

回收連接時間太長,導致連接沒有及時釋放。(默認8個小時)

客戶端:怎么減少從服務端獲取的連接數?

不要每次執行一條sql語句時就去和服務端建立一個新的TCP連接。

連接池,用完之后將連接歸還到連接池(不是close),便于其他業務使用,這種方法在并發程度不高的情況下,可以大大減少頻繁創建和關閉連接的開銷。(比如ali的Druid,Spring Boot的Hikari)

緩存,將查詢到的數據,暫存在緩存中,減少對數據庫的讀。

集群,這種情況下要保證數據一致性的問題(重放bin log中的DML)。

基于集群,實現讀寫分離

分庫分表,數據量多大,數據庫扛不住并發壓力。

垂直分庫,基于業務角度劃分不同的庫

水平分庫,基于數據劃分,一張表數據量過大,將一張表水平拆分成多個表。

5.2、基于優化器

5.2.1、哪些SQL語句慢?

5.2.1.1、slow query log,慢查詢日志

(默認關閉,原因是在DML執行過程中要多記錄一個日志,會消耗性能)

結果中/var/lib/mysql/mine-slow.log就是慢查詢記錄的文件。

執行時間多久的sql會被定義為慢查詢語句記錄到日志中(默認10秒)

動態修改set語句,重啟就會失效,可以從服務器上修改配置文件/etc/my.cnf。

SHOW GLOBAL VARIABLES LIKE 'slow_query%'; SHOW VARIABLES LIKE 'long_query%';SET long_query_time = 0; -- 臨時設置慢查詢的條件是0秒 SET GLOBAL slow_query_log = ON; -- 臨時開啟慢查詢日志SELECT * FROM people;

慢查詢日志里能看到具體的sql、執行時間、操作的用戶、IP、消耗時間、獲取鎖的時間、篩選了多少行、預計篩選多少行。

統計慢查詢結果,系統自帶了分析工具——mysqldumpslow

比如查詢用時最多的2條語句: mysqldumpslow -s t -t 2 -g 'select' mine-slow.log

?

5.2.1.2、PROFILE

谷歌工程師提供的工具,默認是不開啟的。

  • SHOW PROFILES; 看到的所有執行的時間。

  • SHOW PROFILE; 與DML連用,查看該DML語句在每一個環節所消耗的時間。

5.2.2、查看server層的運行信息

5.2.2.1、服務器狀態信息SHOW STATUS;

也可以使用通配符,比如查詢select一共執行多少次:(記錄的是數據庫每一次啟動之后的情況,如果數據庫重啟則會被重置)

5.2.2.2、查看服務端線程的信息(對應的是客戶端的連接)SHOW PROCESSLIST;

如果想殺死某個線程,可以使用KILL + ID;

其數據來源是MySQL的表,如下。所以也可以直接使用sql查表

5.2.2.3、查看存儲引擎層的運行信息

SHOW ENGINE INNODB STATUS \G;

mysql>show engine innodb status +----------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Type | Name | Status | +----------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | InnoDB | | ===================================== 2016-05-12 08:52:28 2b6142bc7700 INNODB MONITOR OUTPUT ===================================== Per second averages calculated from the last 50 seconds //最近50秒內每2秒的平均值 ----------------- BACKGROUND THREAD //backgroup 線程 ----------------- srv_master_thread loops: 1332198 srv_active, 0 srv_shutdown, 64396 srv_idle srv_master_thread log flush and writes: 1396594 ---------- SEMAPHORES // 信號量 ---------- OS WAIT ARRAY INFO: reservation count 118146 //os wait 的信息 ,reservation count 表示InnoDB產生了多少次OS WAIT OS WAIT ARRAY INFO: signal count 186714 // 進行OS WAIT線程,接收到多少次信號(single)被喚醒,如果這個single數值越大,幾十萬或者幾百萬,可能是很多I/0等待或者是InnoDB爭用問題(關于爭用問題可能與OS調度有關,可以嘗試減少innodb_thread_concurrency參數) Mutex spin waits 1664035, rounds 4276317, OS waits 20348 // Mutex spin線程無法獲取鎖而進入Spin wait ,rounds是spin wait 進行輪詢檢查mutextes的次數,os wait 線程放棄spin-wait 進入掛起狀態 RW-shared spins 302454, rounds 11667281, OS waits 69050 //RW-shared 共享鎖, RW-excl spins 83942, rounds 4021896, OS waits 28377 // RW-excl 排他鎖 Spin rounds per wait: 2.57 mutex, 38.58 RW-shared, 47.91 RW-excl // 備注:要明白Innodb如何處理互斥量(Mutexes),以及什么是兩步獲得鎖(two-step approach)。首先進程, 試圖獲得一個鎖,如果此鎖被它人占用。它就會執行所謂的spin wait,即所謂循環的查詢”鎖被釋放了嗎?”。 如果在循環過程中,一直未得到鎖釋放的信息,則其轉入OS WAIT,即所謂線程進入掛起(suspended)狀態。 直到鎖被釋放后,通過信號(singal)喚醒線程 Spin wait的消耗遠小于OS waits。Spinwait利用cpu的空閑時間,檢查鎖的狀態, OS Wait會有所謂content switch,從CPU內核中換出當前執行線程以供其它線程使用。 你可以通過innodb_sync_spin_loops參數來平衡spin wait和os wait------------------------ LATEST DETECTED DEADLOCK ------------------------ 2016-05-11 18:52:09 2b6677e07700 //死鎖發生的時間 *** (1) TRANSACTION: TRANSACTION 495116414, ACTIVE 0.092 sec fetching rows mysql tables in use 1, locked 1 LOCK WAIT 14 lock struct(s), heap size 6544, 20 row lock(s), undo log entries 6 LOCK BLOCKING MySQL thread id: 870003 block 876753 MySQL thread id 876753, OS thread handle 0x2b6685903700, query id 315677415 10.168.152.132 dsc Searching rows for update update aaaaset xxx=xxx+(-1)where id=412 and xxx+(-1)>=0 //顯示第一個死鎖的的第一個事務 *** (1) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 558 page no 5 n bits 144 index `idx_aaaa_unique` of table `test`.`aaaa` trx id 495116414 lock_mode X locks rec but not gap waiting Record lock, heap no 17 PHYSICAL RECORD: n_fields 23; compact format; info bits 0 // 以上表示死鎖發生時事務1等待的鎖,事務想獲得aaaa表的idx_aaaa_unique索引對應的X排他鎖(Innodb的鎖是與索引相關)0: len 8; hex 8000000000000001; asc ;;1: len 2; hex 5748; asc WH;;2: len 8; hex 800000000000004b; asc K;;3: len 8; hex 8000000000000002; asc ;;4: len 8; hex 8000000000002725; asc '%;;5: len 8; hex 8000000000000215; asc ;;6: len 2; hex 5a50; asc ZP;;7: len 8; hex 4231363033313441; asc B160314A;;8: len 6; hex 00001d82e06a; asc j;;9: len 7; hex 1d00000235151a; asc 5 ;;10: len 8; hex 800000000000019c; asc ;;11: len 8; hex 8000000000000000; asc ;;12: len 5; hex 9998da0000; asc ;;13: len 5; hex 999f5a0000; asc Z ;;14: len 10; hex 5a303230323032303031; asc Z020202001;;15: len 12; hex e5b9bfe4b89ce5b9bfe5b79e; asc ;;16: len 4; hex 80001b2f; asc /;;17: len 7; hex 80000000000000; asc ;;18: len 23; hex 50555243484153455f4f524445525f494e5f53544f434b; asc PURCHASE_ORDER_IN_STOCK;;19: len 22; hex 53493230313630343136303030303136333531313735; asc SI20160416000016351175;;20: len 5; hex 99992b1384; asc + ;;21: SQL NULL;22: len 5; hex 99994d7c8d; asc M| ;; *** (2) TRANSACTION: // 事務2的狀態 TRANSACTION 495116394, ACTIVE 0.246 sec fetching rows mysql tables in use 1, locked 1 17 lock struct(s), heap size 2936, 18 row lock(s), undo log entries 21 MySQL thread id 870003, OS thread handle 0x2b6677e07700, query id 315677426 10.168.152.132 dsc Searching rows for update update aaaaset xxx=xxx+(-2)where id=430 and xxx+(-2)>=0 *** (2) HOLDS THE LOCK(S): // 表示事務2獲得的鎖 RECORD LOCKS space id 558 page no 5 n bits 144 index `idx_aaaa_unique` of table `test`.`aaaa` trx id 495116394 lock_mode X locks rec but not gap Record lock, heap no 17 PHYSICAL RECORD: n_fields 23; compact format; info bits 00: len 8; hex 8000000000000001; asc ;;1: len 2; hex 5748; asc WH;;2: len 8; hex 800000000000004b; asc K;;3: len 8; hex 8000000000000002; asc ;;4: len 8; hex 8000000000002725; asc '%;;5: len 8; hex 8000000000000215; asc ;;6: len 2; hex 5a50; asc ZP;;7: len 8; hex 4231363033313441; asc B160314A;;8: len 6; hex 00001d82e06a; asc j;;9: len 7; hex 1d00000235151a; asc 5 ;;10: len 8; hex 800000000000019c; asc ;;11: len 8; hex 8000000000000000; asc ;;12: len 5; hex 9998da0000; asc ;;13: len 5; hex 999f5a0000; asc Z ;;14: len 10; hex 5a303230323032303031; asc Z020202001;;15: len 12; hex e5b9bfe4b89ce5b9bfe5b79e; asc ;;16: len 4; hex 80001b2f; asc /;;17: len 7; hex 80000000000000; asc ;;18: len 23; hex 50555243484153455f4f524445525f494e5f53544f434b; asc PURCHASE_ORDER_IN_STOCK;;19: len 22; hex 53493230313630343136303030303136333531313735; asc SI20160416000016351175;;20: len 5; hex 99992b1384; asc + ;;21: SQL NULL;22: len 5; hex 99994d7c8d; asc M| ;;Record lock, heap no 59 PHYSICAL RECORD: n_fields 23; compact format; info bits 00: len 8; hex 8000000000000001; asc ;;1: len 2; hex 5748; asc WH;;2: len 8; hex 800000000000004b; asc K;;3: len 8; hex 8000000000000002; asc ;;4: len 8; hex 800000000000276a; asc 'j;;5: len 8; hex 80000000000002c2; asc ;;6: len 2; hex 5a50; asc ZP;;7: len 9; hex 423136303231374341; asc B160217CA;;8: len 6; hex 00001d82e06a; asc j;;9: len 7; hex 1d00000235169f; asc 5 ;;10: len 8; hex 80000000000001db; asc ;;11: len 8; hex 8000000000000000; asc ;;12: len 5; hex 9998a20000; asc ;;13: len 5; hex 99a2600000; asc ` ;;14: len 10; hex 5a303230323032303031; asc Z020202001;;15: len 12; hex e5b9bfe4b89ce5b9bfe5b79e; asc ;;16: len 4; hex 80000772; asc r;;17: len 7; hex 80000000000000; asc ;;18: len 23; hex 50555243484153455f4f524445525f494e5f53544f434b; asc PURCHASE_ORDER_IN_STOCK;;19: len 22; hex 53493230313630343136303030303137333630353531; asc SI20160416000017360551;;20: len 5; hex 99992b1385; asc + ;;21: SQL NULL;22: len 5; hex 99994d7c8d; asc M| ;;*** (2) WAITING FOR THIS LOCK TO BE GRANTED: // 表示事務2等待的鎖 RECORD LOCKS space id 558 page no 4 n bits 152 index `idx_aaaa_unique` of table `test`.`aaaa` trx id 495116394 lock_mode X locks rec but not gap waiting Record lock, heap no 63 PHYSICAL RECORD: n_fields 23; compact format; info bits 00: len 8; hex 8000000000000001; asc ;;1: len 2; hex 5748; asc WH;;2: len 8; hex 800000000000004b; asc K;;3: len 8; hex 8000000000000002; asc ;;4: len 8; hex 8000000000000065; asc e;;5: len 8; hex 80000000000000a8; asc ;;6: len 2; hex 5a50; asc ZP;;7: len 9; hex 423136303232314b41; asc B160221KA;;8: len 6; hex 00001d82e07e; asc ~;;9: len 7; hex 2b000001d920ad; asc + ;;10: len 8; hex 80000000000001c8; asc ;;11: len 8; hex 8000000000000000; asc ;;12: len 5; hex 9998aa0000; asc ;;13: len 5; hex 99a2680000; asc h ;;14: len 10; hex 5a303230323032303031; asc Z020202001;;15: len 12; hex e5b9bfe4b89ce5b9bfe5b79e; asc ;;16: len 4; hex 80000b14; asc ;;17: len 7; hex 80000000000000; asc ;;18: len 23; hex 50555243484153455f4f524445525f494e5f53544f434b; asc PURCHASE_ORDER_IN_STOCK;;19: len 22; hex 53493230313630343136303030303137333630353531; asc SI20160416000017360551;;20: len 5; hex 99992b1385; asc + ;;21: SQL NULL;22: len 5; hex 99994d7c8d; asc M| ;;*** WE ROLL BACK TRANSACTION (1) // 表示選擇了哪個事務回滾,避免無限期死鎖等待 // innodb有一個內在的死鎖檢測工具,當死鎖超過一定時間后,會回滾其中一個事務,innodb_lock_wait_timeout 可配置死鎖等待超時時間------------ TRANSACTIONS // 包含了InnoDB事務(transaction)的統計信息 ------------ Trx id counter 495910498 // 當前的transaction id ,這是個系統變量,隨著每次新的transaction產生而增加 Purge done for trx's n:o < 495910389 undo n:o < 0 state: running but idle //正在進行清空的操作操作的transaction ID History list length 2606 // 記錄了undo spaces 內unpurged 的事務個數 //Purge的原則就是記錄沒有被其它事務繼續使用了LIST OF TRANSACTIONS FOR EACH SESSION: ---TRANSACTION 329193748744296, not started MySQL thread id 909825, OS thread handle 0x2b6142bc7700, query id 325773092 10.143.34.172 dsc init show engine innodb status ---TRANSACTION 329193658413160, not started MySQL thread id 909832, OS thread handle 0x2b667d881700, query id 325773024 10.168.108.146 dsc cleaning up.....此處省略...---TRANSACTION 329194102134888, not started MySQL thread id 886232, OS thread handle 0x2b6686c40700, query id 325769275 10.252.160.92 dsc cleaning up -------- FILE I/O // 顯示了I/O Helper thread d的狀態,包含一些統計信息 -------- I/O thread 0 state: waiting for i/o request (insert buffer thread) I/O thread 1 state: waiting for i/o request (log thread) I/O thread 2 state: waiting for i/o request (read thread) I/O thread 3 state: waiting for i/o request (read thread) I/O thread 4 state: waiting for i/o request (read thread) I/O thread 5 state: waiting for i/o request (read thread) I/O thread 6 state: waiting for i/o request (write thread) I/O thread 7 state: waiting for i/o request (write thread) I/O thread 8 state: waiting for i/o request (write thread) I/O thread 9 state: waiting for i/o request (write thread) // 以上顯示了I/O Helper thread的狀態 Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0 Pending flushes (fsync) log: 0; buffer pool: 0 // 顯示各個I/O Helper thread的pending operations,pending的log和buffer pool thread的fsync()調用 2531032 OS file reads, 61115257 OS file writes, 51279005 OS fsyncs //顯示了reads writes fsync() 調用次數 0.00 reads/s, 0 avg bytes/read, 46.64 writes/s, 39.30 fsyncs/s ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 3606, seg size 3608, 38466 merges // seg size 表示當前插入緩沖的大小為3608*16KB,大約為57728KB。free list len代表了空閑列表的長度,merges 表示合并次數 merged operations:insert 34642, delete mark 1008134, delete 0 //insert 插入的記錄數,delete mark 打上的標記,delete 刪除的次數 discarded operations:insert 0, delete mark 0, delete 0 AHI PARTITION 1: Hash table size 4980539, node heap has 161 buffer(s) AHI PARTITION 2: Hash table size 4980539, node heap has 90 buffer(s) AHI PARTITION 3: Hash table size 4980539, node heap has 225 buffer(s) AHI PARTITION 4: Hash table size 4980539, node heap has 352 buffer(s) AHI PARTITION 5: Hash table size 4980539, node heap has 3556 buffer(s) AHI PARTITION 6: Hash table size 4980539, node heap has 4393 buffer(s) AHI PARTITION 7: Hash table size 4980539, node heap has 3052 buffer(s) AHI PARTITION 8: Hash table size 4980539, node heap has 145 buffer(s) 26.62 hash searches/s, 51.78 non-hash searches/s --- LOG // 記錄了transaction log 子系統的信息 --- Log sequence number 264509449071 //顯示當前log sequence number表示有多少字節寫入到log文件內 Log flushed up to 264509449064 //顯示已經被flushed(寫入磁盤)的logs Pages flushed up to 264509446093 Last checkpoint at 264509412298 //顯示最后一個checkpoint 的logs 0 pending log flushes, 0 pending chkp writes 27332545 log i/o's done, 16.22 log i/o's/second // 顯示pending log 的統計信息 ---------------------- BUFFER POOL AND MEMORY ---------------------- Total memory allocated 20653670400; in additional pool allocated 0 // 顯示分配給innodb 的內存大小,以及additional pool 使用的大小 (0表示沒有使用) Dictionary memory allocated 1905658 Buffer pool size 1228800 // buffer pool size > database pages 因為buffer pool size 還會存放lock index hash index 等一些其他系統信息 Free buffers 8192 Database pages 1208634 Old database pages 445992 Modified db pages 8 Pending reads 0 //顯示了pending的reads 和writes Pending writes: LRU 0, flush list 0, single page 0 // 顯示InnoDB讀寫和創建的頁面(pages) Pages made young 842882, not young 127112054 0.00 youngs/s, 0.00 non-youngs/s Pages read 2637230, created 729565, written 30484675 0.00 reads/s, 0.34 creates/s, 24.06 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 //顯示buffer pool 的命中率 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 1208634, unzip_LRU len: 0 I/O sum[9624]:cur[0], unzip sum[0]:cur[0] ---------------------- INDIVIDUAL BUFFER POOL INFO ---------------------- ---BUFFER POOL 0 Buffer pool size 153600 Free buffers 1024 Database pages 151095 Old database pages 55755 Modified db pages 2 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 32021, not young 15238551 0.00 youngs/s, 0.00 non-youngs/s Pages read 326672, created 90881, written 6387155 0.00 reads/s, 0.00 creates/s, 4.80 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 151095, unzip_LRU len: 0 I/O sum[1203]:cur[0], unzip sum[0]:cur[0] ---BUFFER POOL 1 Buffer pool size 153600 Free buffers 1024 Database pages 151061 Old database pages 55742 Modified db pages 0 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 32063, not young 15503760 0.00 youngs/s, 0.00 non-youngs/s Pages read 327353, created 91471, written 978265 0.00 reads/s, 0.00 creates/s, 0.24 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 151061, unzip_LRU len: 0 I/O sum[1203]:cur[0], unzip sum[0]:cur[0] ---BUFFER POOL 2 Buffer pool size 153600 Free buffers 1024 Database pages 151107 Old database pages 55759 Modified db pages 0 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 32746, not young 14789866 0.00 youngs/s, 0.00 non-youngs/s Pages read 328273, created 91339, written 4147582 0.00 reads/s, 0.00 creates/s, 3.50 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 151107, unzip_LRU len: 0 I/O sum[1203]:cur[0], unzip sum[0]:cur[0] ---BUFFER POOL 3 Buffer pool size 153600 Free buffers 1024 Database pages 151088 Old database pages 55752 Modified db pages 0 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 31950, not young 15539726 0.00 youngs/s, 0.00 non-youngs/s Pages read 329629, created 91566, written 2998238 0.00 reads/s, 0.00 creates/s, 1.68 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 151088, unzip_LRU len: 0 I/O sum[1203]:cur[0], unzip sum[0]:cur[0] ---BUFFER POOL 4 Buffer pool size 153600 Free buffers 1024 Database pages 151063 Old database pages 55743 Modified db pages 1 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 323393, not young 17803631 0.00 youngs/s, 0.00 non-youngs/s Pages read 337003, created 90967, written 3974291 0.00 reads/s, 0.08 creates/s, 4.38 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 151063, unzip_LRU len: 0 I/O sum[1203]:cur[0], unzip sum[0]:cur[0] ---BUFFER POOL 5 Buffer pool size 153600 Free buffers 1024 Database pages 151066 Old database pages 55744 Modified db pages 3 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 323468, not young 18135650 0.00 youngs/s, 0.00 non-youngs/s Pages read 335789, created 90992, written 3382034 0.00 reads/s, 0.26 creates/s, 3.04 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 151066, unzip_LRU len: 0 I/O sum[1203]:cur[0], unzip sum[0]:cur[0] ---BUFFER POOL 6 Buffer pool size 153600 Free buffers 1024 Database pages 151073 Old database pages 55747 Modified db pages 2 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 34315, not young 15008240 0.00 youngs/s, 0.00 non-youngs/s Pages read 324769, created 91064, written 5580181 0.00 reads/s, 0.00 creates/s, 4.66 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 151073, unzip_LRU len: 0 I/O sum[1203]:cur[0], unzip sum[0]:cur[0] ---BUFFER POOL 7 Buffer pool size 153600 Free buffers 1024 Database pages 151081 Old database pages 55750 Modified db pages 0 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 32926, not young 15092630 0.00 youngs/s, 0.00 non-youngs/s Pages read 327742, created 91285, written 3036929 0.00 reads/s, 0.00 creates/s, 1.76 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 151081, unzip_LRU len: 0 I/O sum[1203]:cur[0], unzip sum[0]:cur[0] -------------- ROW OPERATIONS //顯示了row operations 及其他一些統計信息 -------------- 0 queries inside InnoDB, 0 queries in queue //顯示了有多少個線程在InnoDB內核 52 read views open inside InnoDB // 有多少個read view 被打開,一個read view 是一致性保證MVCC "snapshot" Main thread process no. 46196, id 47719070582528, state: sleeping //顯示內核main thread的狀態信息。 Number of rows inserted 35803330, updated 3181469, deleted 14015545, read 7740416065 12.48 inserts/s, 0.68 updates/s, 0.30 deletes/s, 3005.82 reads/s ---------------------------- END OF INNODB MONITOR OUTPUT ============================

5.2.3、SQL慢的原因

  • EXPLAIN Output Columns
ColumnJSON NameMeaning
idselect_idThe SELECT identifier——優化器中各表的查詢順序
select_typeNoneThe SELECT type——查詢的類型
tabletable_nameThe table for the output row——訪問的表
partitionspartitionsThe matching partitions——分區
typeaccess_typeThe join type——訪問的類型,對于優化非常關鍵
possible_keyspossible_keysThe possible indexes to choose——可能用到的索引
keykeyThe index actually chosen——實際用到的索引
key_lenkey_lengthThe length of the chosen key
refrefThe columns compared to the index——索引列做等值查詢時,與索引列比對的值得信息(如,這個值是個常數,或者另一個列)
rowsrowsEstimate of rows to be examined——預估要掃描多少數據
filteredfilteredPercentage of rows filtered by table condition——交付客戶端/存儲引擎篩選的。(由于有server層的過濾,索引server過濾的越少越好)
ExtraNoneAdditional information

?

  • select type查詢類型
select_type ValueJSON NameMeaning
SIMPLENoneSimple SELECT (not using UNION or subqueries)——簡單查詢,單表查詢
PRIMARYNoneOutermost SELECT——主查詢,有關聯查詢時,最外面那層查詢
UNIONNoneSecond or later SELECT statement in a UNION
DEPENDENT UNIONdependent (true)Second or later SELECT statement in a UNION, dependent on outer query
UNION RESULTunion_resultResult of a UNION.
SUBQUERYNoneFirst SELECT in subquery——子查詢,有關聯查詢時,第一層子查詢(不管這個子查詢里又有多少子查詢)
DEPENDENT SUBQUERYdependent (true)First SELECT in subquery, dependent on outer query
DERIVEDNoneDerived table——在得到最終結果之前,用到的臨時表
DEPENDENT DERIVEDdependent (true)Derived table dependent on another table
MATERIALIZEDmaterialized_from_subqueryMaterialized subquery
UNCACHEABLE SUBQUERYcacheable (false)A subquery for which the result cannot be cached and must be re-evaluated for each row of the outer query
UNCACHEABLE UNIONcacheable (false)The second or later select in a UNION that belongs to an uncacheable subquery (see UNCACHEABLE SUBQUERY)

?

  • type 針對單表的訪問方法

從上到下=從優到劣

    • const,唯一性索引和常數(常數不用計算,如子查詢等等)的匹配,id=1
    • system,訪問系統表,且表里只有一行數據
    • eq_ref,多表的關聯查詢時,與被驅動表比較時用到了被驅動表唯一性索引
    • ref,用了普通的索引(不是唯一性索引)
    • range,對索引的范圍掃描,><,between and
    • index,對索引全量掃描,比如(id是索引)select id from teacher;
    • all,沒有用到任何索引,就要對表全量掃描

?

  • Extra,額外的信息
    • using index(覆蓋索引)
    • using where 存儲引擎返回的數據,并不都滿足客戶端的篩選條件時,需要server層再過濾
    • using index Condition(索引下推)
    • using filesort 排序的列不是索引
    • using temporary 過濾或排序時,需要暫存數據到臨時表,(比如,distinct、group by時)。可以對這些列創建索引,以消除using temporary

5.2.4、優化的參考

數據庫優化的目標,就是基于Explain的信息盡量的使用索引。當然在業務上也要考慮優化,盡量減少的數據庫訪問負擔。

  • 表結構的優化
    • 字段的定義,類型和長度。選擇滿足需要的最小數據類型(int,tinyint),字符char,verchar,能用定長就不要用變長。
    • 不建議用外鍵、觸發器、視圖 因為不可見,降低可讀性。外鍵,數據一致性的約束放在代碼層。
    • 大文件的存儲,圖片、文本、視頻最好不要base64編碼后存在數據庫,會占用大量空間。可以上傳到ftp服務器。
    • 字段適當冗余,解決重關聯的問題,避免太多表聯合查詢。
    • 表的拆分,盡可能滿足第三范式,拒絕表字段大而全。
    • 關系型數據庫如果不滿足,可以用nosql,大數據 。

?

  • sql的優化(簡單寫寫 )
    • 調整表查詢的順序,用小表驅動大表
    • join 代替 in
    • union 代替or
    • union all(不需要去重) 效率大于 union
    • limit 大偏移量時,比如要從100萬開始,可以先把數據過濾,再limit

?

?

?

?

?

附錄:

1、取消MySQL密碼檢驗程序:在mysql客戶端執行UNINSTALL COMPONENT 'file://component_validate_password';https://www.yuque.com/u8021948/zt89r2/kf7qxxhttps://www.yuque.com/u8021948/zt89r2/kf7qxx

參考:https://dev.mysql.com/doc/refman/8.0/en/validate-password-installation.html

2、服務器上的localhost:用戶root,密碼1qazxsw2!

遠程連接:用戶customer,密碼123qwe

來源:https://www.yuque.com/u8021948/zt89r2/kf7qxx

?

總結

以上是生活随笔為你收集整理的MySQL宏观架构与原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

一本色道久久综合亚洲精品不卡 | 精品偷自拍另类在线观看 | 精品国精品国产自在久国产87 | 人人妻在人人 | 大乳丰满人妻中文字幕日本 | 2020最新国产自产精品 | 中文字幕无码日韩欧毛 | 国产又爽又猛又粗的视频a片 | 色婷婷综合激情综在线播放 | 一本久道久久综合婷婷五月 | av小次郎收藏 | 国产精品无码成人午夜电影 | 久久久久成人片免费观看蜜芽 | 激情五月综合色婷婷一区二区 | 久久婷婷五月综合色国产香蕉 | 国精品人妻无码一区二区三区蜜柚 | 亚洲综合伊人久久大杳蕉 | 国产亚洲精品久久久久久 | 四虎4hu永久免费 | 少妇人妻av毛片在线看 | 97精品人妻一区二区三区香蕉 | 99re在线播放 | 免费无码午夜福利片69 | 亚洲成a人片在线观看无码 | 免费看男女做好爽好硬视频 | 沈阳熟女露脸对白视频 | 成人无码精品一区二区三区 | 中文字幕中文有码在线 | 国产电影无码午夜在线播放 | 国产精品多人p群无码 | 国产亚洲精品久久久久久大师 | 中文字幕无码免费久久99 | 东京一本一道一二三区 | 亚洲中文字幕乱码av波多ji | 亚洲区欧美区综合区自拍区 | 免费人成网站视频在线观看 | 红桃av一区二区三区在线无码av | 无码午夜成人1000部免费视频 | 国产成人无码av一区二区 | 成人三级无码视频在线观看 | 真人与拘做受免费视频一 | 国产精品美女久久久久av爽李琼 | 女人被爽到呻吟gif动态图视看 | 国产免费久久久久久无码 | 无码乱肉视频免费大全合集 | 无码人妻丰满熟妇区毛片18 | 国产成人精品三级麻豆 | 久久久精品欧美一区二区免费 | 又大又硬又爽免费视频 | 日本饥渴人妻欲求不满 | 国产内射老熟女aaaa | 国产三级精品三级男人的天堂 | 日产精品高潮呻吟av久久 | 国产乱人伦偷精品视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 成人无码精品一区二区三区 | 久久久精品456亚洲影院 | 午夜丰满少妇性开放视频 | 内射欧美老妇wbb | 国产精品久免费的黄网站 | 好男人www社区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | √天堂资源地址中文在线 | 一区二区传媒有限公司 | 国产口爆吞精在线视频 | 欧美一区二区三区 | 久久精品国产一区二区三区肥胖 | 成人一在线视频日韩国产 | 少女韩国电视剧在线观看完整 | 色综合久久88色综合天天 | 老头边吃奶边弄进去呻吟 | 老子影院午夜精品无码 | 日本护士毛茸茸高潮 | 亚洲 激情 小说 另类 欧美 | 色情久久久av熟女人妻网站 | 九月婷婷人人澡人人添人人爽 | 久久久久久亚洲精品a片成人 | √8天堂资源地址中文在线 | 国产免费观看黄av片 | 亚洲国产精品久久人人爱 | 欧洲欧美人成视频在线 | 久久婷婷五月综合色国产香蕉 | 国产成人精品视频ⅴa片软件竹菊 | 国语自产偷拍精品视频偷 | 久久精品成人欧美大片 | 国产精品第一区揄拍无码 | 国产av无码专区亚洲a∨毛片 | 黑人粗大猛烈进出高潮视频 | 午夜熟女插插xx免费视频 | 亚洲成a人一区二区三区 | 久久亚洲a片com人成 | 久久这里只有精品视频9 | 老太婆性杂交欧美肥老太 | 午夜理论片yy44880影院 | 国产无套内射久久久国产 | 99精品无人区乱码1区2区3区 | 男女爱爱好爽视频免费看 | 欧美色就是色 | 亚洲成av人片天堂网无码】 | 精品国产一区二区三区四区 | 永久免费观看国产裸体美女 | 国产成人精品无码播放 | 免费观看的无遮挡av | 国产亚洲精品久久久闺蜜 | 久久精品国产亚洲精品 | 伊在人天堂亚洲香蕉精品区 | 99久久人妻精品免费二区 | 曰韩无码二三区中文字幕 | 在线亚洲高清揄拍自拍一品区 | 色狠狠av一区二区三区 | 欧美性生交xxxxx久久久 | 男女爱爱好爽视频免费看 | 亚洲 激情 小说 另类 欧美 | 青草视频在线播放 | 十八禁真人啪啪免费网站 | 亚洲欧美精品伊人久久 | a国产一区二区免费入口 | 欧美真人作爱免费视频 | 强伦人妻一区二区三区视频18 | 欧美日韩人成综合在线播放 | 国产精品高潮呻吟av久久4虎 | 丰满少妇人妻久久久久久 | 四虎4hu永久免费 | 欧美国产日韩亚洲中文 | 人妻人人添人妻人人爱 | 中文亚洲成a人片在线观看 | 国产成人人人97超碰超爽8 | 狠狠色丁香久久婷婷综合五月 | 欧美激情内射喷水高潮 | 97夜夜澡人人爽人人喊中国片 | 国内精品一区二区三区不卡 | 精品国产一区二区三区四区在线看 | 精品国产福利一区二区 | 国产一区二区不卡老阿姨 | 又紧又大又爽精品一区二区 | 精品久久久久久亚洲精品 | 两性色午夜视频免费播放 | 粉嫩少妇内射浓精videos | 日本va欧美va欧美va精品 | 国产舌乚八伦偷品w中 | 亚洲精品欧美二区三区中文字幕 | 日本又色又爽又黄的a片18禁 | 97精品人妻一区二区三区香蕉 | 日日橹狠狠爱欧美视频 | 亚洲娇小与黑人巨大交 | 内射巨臀欧美在线视频 | 国产精品无码久久av | 一本久道久久综合狠狠爱 | 国产国语老龄妇女a片 | 欧美乱妇无乱码大黄a片 | 欧美黑人巨大xxxxx | 高清国产亚洲精品自在久久 | 乱码午夜-极国产极内射 | 300部国产真实乱 | 久久www免费人成人片 | 无码任你躁久久久久久久 | 一本一道久久综合久久 | 67194成是人免费无码 | 青青草原综合久久大伊人精品 | 日产精品99久久久久久 | 精品无码国产自产拍在线观看蜜 | 国产精品毛多多水多 | 色一情一乱一伦 | 伊人久久大香线蕉av一区二区 | 国产色精品久久人妻 | 国产午夜精品一区二区三区嫩草 | 性色欲情网站iwww九文堂 | 国内精品九九久久久精品 | 免费观看黄网站 | 国产午夜精品一区二区三区嫩草 | 亚洲色无码一区二区三区 | 婷婷丁香五月天综合东京热 | 性生交片免费无码看人 | 精品亚洲成av人在线观看 | 无码吃奶揉捏奶头高潮视频 | 亚洲国产日韩a在线播放 | 午夜精品久久久久久久久 | 国产人妻大战黑人第1集 | 久久国产精品二国产精品 | 无码人妻丰满熟妇区五十路百度 | 久久婷婷五月综合色国产香蕉 | 成人精品一区二区三区中文字幕 | 天堂久久天堂av色综合 | 亚洲人成无码网www | 欧美亚洲国产一区二区三区 | 精品午夜福利在线观看 | 成熟女人特级毛片www免费 | 日本在线高清不卡免费播放 | 无码纯肉视频在线观看 | 久久精品国产一区二区三区 | 久久精品国产99久久6动漫 | 2020最新国产自产精品 | 好屌草这里只有精品 | 夫妻免费无码v看片 | 任你躁国产自任一区二区三区 | 成人一在线视频日韩国产 | 2019午夜福利不卡片在线 | 欧美日韩一区二区综合 | 人人妻人人藻人人爽欧美一区 | 亚洲七七久久桃花影院 | 蜜臀aⅴ国产精品久久久国产老师 | a国产一区二区免费入口 | 欧美日本精品一区二区三区 | 国产麻豆精品精东影业av网站 | 亚洲国产精品毛片av不卡在线 | 麻豆av传媒蜜桃天美传媒 | 嫩b人妻精品一区二区三区 | 亚洲爆乳无码专区 | 久久国产精品二国产精品 | 无码精品人妻一区二区三区av | 成人无码视频在线观看网站 | 欧美日韩视频无码一区二区三 | 国产亚洲欧美日韩亚洲中文色 | 精品人妻av区 | 无码人妻av免费一区二区三区 | 大乳丰满人妻中文字幕日本 | 国产成人一区二区三区在线观看 | 日韩精品久久久肉伦网站 | 欧美日韩一区二区三区自拍 | 人人妻人人澡人人爽欧美一区 | 伊人久久大香线焦av综合影院 | 蜜桃无码一区二区三区 | 精品无人区无码乱码毛片国产 | 亚洲午夜久久久影院 | 欧美肥老太牲交大战 | 一个人看的www免费视频在线观看 | 国产成人综合在线女婷五月99播放 | 亚洲国产精品一区二区第一页 | 欧美亚洲国产一区二区三区 | 装睡被陌生人摸出水好爽 | 67194成是人免费无码 | 一本久久a久久精品vr综合 | 国产成人无码a区在线观看视频app | 亚洲va欧美va天堂v国产综合 | 无码人妻出轨黑人中文字幕 | 亚洲成av人片在线观看无码不卡 | 久久精品国产大片免费观看 | 麻豆国产人妻欲求不满 | 牲欲强的熟妇农村老妇女视频 | 国产精品二区一区二区aⅴ污介绍 | 人妻天天爽夜夜爽一区二区 | 亚洲人成人无码网www国产 | 亚洲精品午夜国产va久久成人 | 在线天堂新版最新版在线8 | 精品久久久久久亚洲精品 | ass日本丰满熟妇pics | 人妻少妇精品视频专区 | 亚洲欧美国产精品专区久久 | 国产内射爽爽大片视频社区在线 | 日本大香伊一区二区三区 | 欧美日韩人成综合在线播放 | 成年美女黄网站色大免费视频 | 精品厕所偷拍各类美女tp嘘嘘 | 国产精品亚洲а∨无码播放麻豆 | 一二三四社区在线中文视频 | 亚洲熟妇色xxxxx亚洲 | 欧美老熟妇乱xxxxx | 一本久道久久综合狠狠爱 | 国产精品久久福利网站 | 无码人妻丰满熟妇区毛片18 | av无码不卡在线观看免费 | 荫蒂被男人添的好舒服爽免费视频 | 久久久亚洲欧洲日产国码αv | 国产莉萝无码av在线播放 | 人妻与老人中文字幕 | 婷婷丁香六月激情综合啪 | 国产在线精品一区二区三区直播 | 日本又色又爽又黄的a片18禁 | 7777奇米四色成人眼影 | 久久久国产一区二区三区 | 国产精品igao视频网 | 亚洲国产欧美在线成人 | 亚洲va中文字幕无码久久不卡 | 中文字幕无码免费久久9一区9 | 波多野结衣av一区二区全免费观看 | 狠狠cao日日穞夜夜穞av | 亚洲日本一区二区三区在线 | 日本丰满熟妇videos | 97久久国产亚洲精品超碰热 | 日日橹狠狠爱欧美视频 | 夜精品a片一区二区三区无码白浆 | 亚洲欧美精品aaaaaa片 | 黑人大群体交免费视频 | 乌克兰少妇性做爰 | 久久精品女人天堂av免费观看 | 色综合久久88色综合天天 | 人妻天天爽夜夜爽一区二区 | 亚洲日韩精品欧美一区二区 | 婷婷丁香五月天综合东京热 | 国产在线无码精品电影网 | 中文精品无码中文字幕无码专区 | 亚洲综合色区中文字幕 | 欧美真人作爱免费视频 | 在线观看国产一区二区三区 | 呦交小u女精品视频 | 十八禁真人啪啪免费网站 | 国产明星裸体无码xxxx视频 | 国产免费久久精品国产传媒 | 色偷偷人人澡人人爽人人模 | 欧美黑人巨大xxxxx | 亚洲七七久久桃花影院 | 偷窥村妇洗澡毛毛多 | 99国产精品白浆在线观看免费 | 3d动漫精品啪啪一区二区中 | 亚洲综合无码一区二区三区 | 国产精华av午夜在线观看 | 国产精华av午夜在线观看 | 初尝人妻少妇中文字幕 | 亚洲 激情 小说 另类 欧美 | 成熟人妻av无码专区 | 99久久精品日本一区二区免费 | 波多野结衣av一区二区全免费观看 | 狠狠cao日日穞夜夜穞av | 久久精品国产一区二区三区 | 国产在热线精品视频 | 人人爽人人澡人人人妻 | 丰满岳乱妇在线观看中字无码 | 亚洲爆乳大丰满无码专区 | 青草视频在线播放 | 狠狠色色综合网站 | 成人试看120秒体验区 | 亚洲色偷偷男人的天堂 | 狠狠综合久久久久综合网 | 国产凸凹视频一区二区 | 久久久国产精品无码免费专区 | 亚洲精品国产第一综合99久久 | 亚洲综合无码一区二区三区 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 日日摸夜夜摸狠狠摸婷婷 | 国产无遮挡又黄又爽免费视频 | 免费观看的无遮挡av | 亚洲日韩一区二区三区 | 99精品国产综合久久久久五月天 | 欧美xxxx黑人又粗又长 | 亚洲 a v无 码免 费 成 人 a v | 国产热a欧美热a在线视频 | 中文无码精品a∨在线观看不卡 | 1000部啪啪未满十八勿入下载 | 久精品国产欧美亚洲色aⅴ大片 | 最近免费中文字幕中文高清百度 | 曰本女人与公拘交酡免费视频 | 大肉大捧一进一出好爽视频 | 无码国模国产在线观看 | 四虎影视成人永久免费观看视频 | 18精品久久久无码午夜福利 | 国产绳艺sm调教室论坛 | 日产精品高潮呻吟av久久 | 国产乱人无码伦av在线a | a片在线免费观看 | 天堂а√在线地址中文在线 | 成人综合网亚洲伊人 | 国产乡下妇女做爰 | 日韩精品成人一区二区三区 | 日日麻批免费40分钟无码 | 亚洲第一无码av无码专区 | 色五月丁香五月综合五月 | 亚洲日韩中文字幕在线播放 | 中文字幕无码av波多野吉衣 | 国产乱人无码伦av在线a | 久久99精品久久久久久动态图 | 99久久人妻精品免费二区 | 国产精品无码永久免费888 | 久久久www成人免费毛片 | 无码人妻久久一区二区三区不卡 | а√天堂www在线天堂小说 | 97久久精品无码一区二区 | 中文字幕人成乱码熟女app | 丰满诱人的人妻3 | 熟女体下毛毛黑森林 | 欧美高清在线精品一区 | 2020久久超碰国产精品最新 | 亚洲成av人片天堂网无码】 | 国产成人无码午夜视频在线观看 | 国产亚洲精品久久久闺蜜 | 无码国模国产在线观看 | 老司机亚洲精品影院 | 欧洲欧美人成视频在线 | 亚洲高清偷拍一区二区三区 | 天天躁夜夜躁狠狠是什么心态 | 高潮毛片无遮挡高清免费视频 | 一二三四在线观看免费视频 | 国产成人无码一二三区视频 | 欧洲熟妇色 欧美 | 正在播放东北夫妻内射 | 十八禁真人啪啪免费网站 | 夜先锋av资源网站 | 妺妺窝人体色www在线小说 | 东京无码熟妇人妻av在线网址 | 中文字幕乱码中文乱码51精品 | 一本久久a久久精品亚洲 | 国产免费久久精品国产传媒 | 国产又爽又黄又刺激的视频 | 蜜桃无码一区二区三区 | 丰满人妻精品国产99aⅴ | 久久人人97超碰a片精品 | 久久www免费人成人片 | 成人精品一区二区三区中文字幕 | 日韩精品无码免费一区二区三区 | 国产又粗又硬又大爽黄老大爷视 | 成熟女人特级毛片www免费 | 又黄又爽又色的视频 | 99精品无人区乱码1区2区3区 | 久久国产自偷自偷免费一区调 | 国产无遮挡又黄又爽又色 | 亚洲国产精品美女久久久久 | 国产乱子伦视频在线播放 | 欧美日韩人成综合在线播放 | 成在人线av无码免费 | 欧美熟妇另类久久久久久不卡 | 女人高潮内射99精品 | 又大又硬又黄的免费视频 | 亚洲成av人综合在线观看 | 人妻少妇精品无码专区二区 | 图片区 小说区 区 亚洲五月 | 国产疯狂伦交大片 | 国产亚洲精品久久久久久国模美 | 人妻互换免费中文字幕 | 亚洲码国产精品高潮在线 | 老子影院午夜伦不卡 | 亚洲一区二区三区含羞草 | 亚洲午夜福利在线观看 | 国产一区二区三区影院 | 性啪啪chinese东北女人 | 98国产精品综合一区二区三区 | 97人妻精品一区二区三区 | 一本色道久久综合狠狠躁 | 国产精品亚洲综合色区韩国 | 久9re热视频这里只有精品 | 久久午夜无码鲁丝片秋霞 | 欧美午夜特黄aaaaaa片 | 久久久精品人妻久久影视 | 十八禁真人啪啪免费网站 | 亚洲精品一区国产 | 无遮挡国产高潮视频免费观看 | 亚洲综合伊人久久大杳蕉 | 天堂亚洲免费视频 | 天天躁夜夜躁狠狠是什么心态 | 国产精品毛多多水多 | 波多野结衣aⅴ在线 | 久久99精品国产麻豆蜜芽 | 又大又紧又粉嫩18p少妇 | 一本色道久久综合狠狠躁 | 丰满岳乱妇在线观看中字无码 | 亚洲乱码中文字幕在线 | 任你躁在线精品免费 | 精品厕所偷拍各类美女tp嘘嘘 | 国产情侣作爱视频免费观看 | 六十路熟妇乱子伦 | 99久久精品无码一区二区毛片 | 久久精品人人做人人综合试看 | 国产麻豆精品一区二区三区v视界 | 国产在线一区二区三区四区五区 | 亚洲男人av香蕉爽爽爽爽 | 无码国内精品人妻少妇 | 亚洲精品久久久久中文第一幕 | 国产精品永久免费视频 | 永久黄网站色视频免费直播 | 国产乱人偷精品人妻a片 | 熟妇人妻中文av无码 | 亚洲国产欧美国产综合一区 | 精品成人av一区二区三区 | 性史性农村dvd毛片 | 国产乡下妇女做爰 | 亚洲自偷精品视频自拍 | 国产精品第一国产精品 | 亚洲日韩av一区二区三区四区 | 色欲av亚洲一区无码少妇 | 亚洲欧美色中文字幕在线 | 黑人巨大精品欧美一区二区 | 亚洲精品国产精品乱码不卡 | 国产成人精品视频ⅴa片软件竹菊 | 中文亚洲成a人片在线观看 | 欧美老妇交乱视频在线观看 | 4hu四虎永久在线观看 | 精品久久久无码人妻字幂 | 理论片87福利理论电影 | 欧美老熟妇乱xxxxx | 男人和女人高潮免费网站 | 国产乱人无码伦av在线a | 男人的天堂2018无码 | 内射爽无广熟女亚洲 | 久久亚洲中文字幕无码 | 亚洲一区二区三区播放 | 人妻少妇精品无码专区动漫 | 久久久久99精品国产片 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲小说春色综合另类 | 日韩精品久久久肉伦网站 | 欧美人与牲动交xxxx | 高潮毛片无遮挡高清免费 | 麻豆成人精品国产免费 | 亚洲色偷偷男人的天堂 | 97精品国产97久久久久久免费 | 中文字幕乱码人妻无码久久 | 亚洲成a人片在线观看日本 | 高清国产亚洲精品自在久久 | 国产又爽又黄又刺激的视频 | 大肉大捧一进一出好爽视频 | 99久久亚洲精品无码毛片 | 巨爆乳无码视频在线观看 | 红桃av一区二区三区在线无码av | 亚洲午夜福利在线观看 | 性做久久久久久久久 | 欧美35页视频在线观看 | 国产97人人超碰caoprom | 国产亚洲精品久久久久久国模美 | 国产xxx69麻豆国语对白 | 日韩在线不卡免费视频一区 | 性啪啪chinese东北女人 | 亚洲欧美国产精品久久 | 在线观看欧美一区二区三区 | 99久久久无码国产aaa精品 | 99国产精品白浆在线观看免费 | 日韩人妻少妇一区二区三区 | 国产性生大片免费观看性 | 东京热一精品无码av | 欧美日韩久久久精品a片 | 黑人大群体交免费视频 | 国产精品多人p群无码 | 国产在线无码精品电影网 | 色婷婷综合激情综在线播放 | 成人三级无码视频在线观看 | 又黄又爽又色的视频 | 97夜夜澡人人爽人人喊中国片 | 欧美黑人巨大xxxxx | 少妇愉情理伦片bd | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 伊人久久大香线蕉亚洲 | 又色又爽又黄的美女裸体网站 | 国产精品自产拍在线观看 | 麻豆精品国产精华精华液好用吗 | 亚洲爆乳无码专区 | 久激情内射婷内射蜜桃人妖 | 蜜桃av抽搐高潮一区二区 | 免费网站看v片在线18禁无码 | 特级做a爰片毛片免费69 | 久久久久99精品国产片 | 99riav国产精品视频 | 亚洲无人区一区二区三区 | 98国产精品综合一区二区三区 | 国产无遮挡又黄又爽又色 | 国产精品久久久久久久影院 | 久久精品国产一区二区三区肥胖 | 精品日本一区二区三区在线观看 | 欧美老熟妇乱xxxxx | 久久午夜夜伦鲁鲁片无码免费 | 亚洲欧洲日本无在线码 | 成人性做爰aaa片免费看不忠 | 久久99精品久久久久久 | 无码播放一区二区三区 | 无遮无挡爽爽免费视频 | 美女毛片一区二区三区四区 | 曰韩少妇内射免费播放 | 激情爆乳一区二区三区 | 国产舌乚八伦偷品w中 | 国产精品va在线播放 | 窝窝午夜理论片影院 | 亚洲精品国产第一综合99久久 | 蜜桃无码一区二区三区 | 在线欧美精品一区二区三区 | 色婷婷欧美在线播放内射 | 亚洲精品一区二区三区大桥未久 | 精品亚洲韩国一区二区三区 | 欧美老人巨大xxxx做受 | 亚洲色在线无码国产精品不卡 | 国产小呦泬泬99精品 | 国产亚洲人成在线播放 | 亚洲成av人片在线观看无码不卡 | 午夜性刺激在线视频免费 | 女人和拘做爰正片视频 | 国产真实伦对白全集 | 亚洲欧洲中文日韩av乱码 | 日本精品少妇一区二区三区 | 国产69精品久久久久app下载 | 日日摸日日碰夜夜爽av | 无码人妻出轨黑人中文字幕 | 国产在线精品一区二区三区直播 | 中文字幕人妻丝袜二区 | 真人与拘做受免费视频 | 亚洲国产欧美日韩精品一区二区三区 | 国产精品亚洲综合色区韩国 | 中文字幕乱妇无码av在线 | 中文无码成人免费视频在线观看 | 亚洲中文字幕无码一久久区 | 久久99精品久久久久婷婷 | 无码国产激情在线观看 | 亚洲呦女专区 | 99久久久无码国产aaa精品 | 久久无码中文字幕免费影院蜜桃 | 亚洲国产综合无码一区 | 亚洲精品国偷拍自产在线观看蜜桃 | 伊人久久大香线焦av综合影院 | 中文字幕乱码人妻无码久久 | 国产亲子乱弄免费视频 | 97久久超碰中文字幕 | 午夜无码人妻av大片色欲 | 99精品视频在线观看免费 | 国内精品一区二区三区不卡 | 亚洲国产精品美女久久久久 | 亚洲另类伦春色综合小说 | 国产极品视觉盛宴 | 亚洲欧美精品伊人久久 | 国产艳妇av在线观看果冻传媒 | 香港三级日本三级妇三级 | 最近中文2019字幕第二页 | 国内综合精品午夜久久资源 | 免费观看激色视频网站 | 俺去俺来也www色官网 | 亚洲国产精品成人久久蜜臀 | 精品一区二区三区波多野结衣 | 亚洲中文字幕va福利 | 久久久久国色av免费观看性色 | 偷窥日本少妇撒尿chinese | 又粗又大又硬毛片免费看 | 丰满少妇熟乱xxxxx视频 | 久久99精品国产麻豆蜜芽 | 老司机亚洲精品影院 | 国产成人人人97超碰超爽8 | 无码人妻黑人中文字幕 | 爽爽影院免费观看 | 免费看男女做好爽好硬视频 | 久久综合激激的五月天 | 国产激情精品一区二区三区 | 蜜桃臀无码内射一区二区三区 | 天天拍夜夜添久久精品大 | 国产精品亚洲专区无码不卡 | 久久亚洲中文字幕精品一区 | 国产免费久久久久久无码 | a片在线免费观看 | 欧美三级a做爰在线观看 | 午夜免费福利小电影 | 亚洲成a人一区二区三区 | 国产午夜精品一区二区三区嫩草 | 97se亚洲精品一区 | 亚洲色成人中文字幕网站 | 国产后入清纯学生妹 | 中文无码伦av中文字幕 | 澳门永久av免费网站 | 天堂亚洲免费视频 | 国产人妻久久精品二区三区老狼 | 玩弄少妇高潮ⅹxxxyw | 亚洲精品成人av在线 | 高清无码午夜福利视频 | 无码人中文字幕 | 人人妻人人澡人人爽人人精品 | 婷婷六月久久综合丁香 | 日韩精品无码一区二区中文字幕 | 成人女人看片免费视频放人 | 久久久久久av无码免费看大片 | 少妇人妻av毛片在线看 | 日日碰狠狠躁久久躁蜜桃 | 国产xxx69麻豆国语对白 | 久久精品成人欧美大片 | 人妻少妇精品无码专区二区 | 久久aⅴ免费观看 | 国产69精品久久久久app下载 | 亚洲精品成人av在线 | 少妇性荡欲午夜性开放视频剧场 | 精品久久久久香蕉网 | 欧美日韩精品 | 天海翼激烈高潮到腰振不止 | 国产精品久久国产三级国 | 麻豆成人精品国产免费 | 久精品国产欧美亚洲色aⅴ大片 | 高清无码午夜福利视频 | 国产精品内射视频免费 | 久久99热只有频精品8 | 国内精品人妻无码久久久影院蜜桃 | 国产av无码专区亚洲a∨毛片 | 欧美日韩视频无码一区二区三 | 十八禁真人啪啪免费网站 | 人妻少妇被猛烈进入中文字幕 | 亚洲精品无码国产 | 日韩精品无码免费一区二区三区 | 曰本女人与公拘交酡免费视频 | 欧美日韩亚洲国产精品 | 国产成人人人97超碰超爽8 | 色婷婷香蕉在线一区二区 | 亚洲日韩av一区二区三区四区 | 午夜无码人妻av大片色欲 | 亚洲精品成人av在线 | 亚洲色偷偷男人的天堂 | 少妇无套内谢久久久久 | 国产av久久久久精东av | 免费国产成人高清在线观看网站 | 大胆欧美熟妇xx | 老太婆性杂交欧美肥老太 | 小鲜肉自慰网站xnxx | 无套内谢老熟女 | 中文字幕乱码中文乱码51精品 | 97久久精品无码一区二区 | 国产无套粉嫩白浆在线 | 欧美xxxxx精品 | 国产又爽又黄又刺激的视频 | 欧美三级a做爰在线观看 | 欧美35页视频在线观看 | 国产肉丝袜在线观看 | 天天拍夜夜添久久精品大 | 亚洲综合在线一区二区三区 | 任你躁国产自任一区二区三区 | 蜜臀av在线播放 久久综合激激的五月天 | 日日碰狠狠躁久久躁蜜桃 | 99久久久无码国产精品免费 | 在线观看国产一区二区三区 | 人妻少妇被猛烈进入中文字幕 | 亚洲成在人网站无码天堂 | 高清国产亚洲精品自在久久 | 性色欲情网站iwww九文堂 | 精品国产精品久久一区免费式 | 国产舌乚八伦偷品w中 | 国产人妻精品一区二区三区不卡 | 久久精品99久久香蕉国产色戒 | 国内精品一区二区三区不卡 | 亚洲成a人片在线观看无码 | www国产亚洲精品久久网站 | 天天爽夜夜爽夜夜爽 | 亚洲人成影院在线无码按摩店 | 玩弄人妻少妇500系列视频 | 久久久精品国产sm最大网站 | 日韩欧美中文字幕公布 | 久久久久亚洲精品中文字幕 | 欧美午夜特黄aaaaaa片 | 99久久精品无码一区二区毛片 | 国产精品国产自线拍免费软件 | 欧美丰满熟妇xxxx | 精品熟女少妇av免费观看 | 欧美黑人性暴力猛交喷水 | 97无码免费人妻超级碰碰夜夜 | 狠狠综合久久久久综合网 | 国内精品人妻无码久久久影院 | 伦伦影院午夜理论片 | 亚洲精品欧美二区三区中文字幕 | 亚洲精品一区二区三区大桥未久 | 精品一区二区三区波多野结衣 | 熟女少妇在线视频播放 | 色情久久久av熟女人妻网站 | √8天堂资源地址中文在线 | 野狼第一精品社区 | 精品国产av色一区二区深夜久久 | 在线а√天堂中文官网 | 中文字幕亚洲情99在线 | 久久久亚洲欧洲日产国码αv | 国产超级va在线观看视频 | 国产精品人人妻人人爽 | 日日摸日日碰夜夜爽av | 又大又紧又粉嫩18p少妇 | 日韩无码专区 | 四虎永久在线精品免费网址 | 无码人妻丰满熟妇区五十路百度 | 日本丰满护士爆乳xxxx | 三上悠亚人妻中文字幕在线 | 精品久久久无码中文字幕 | 麻豆国产97在线 | 欧洲 | 老太婆性杂交欧美肥老太 | 国产精品二区一区二区aⅴ污介绍 | 久久精品女人的天堂av | 亚洲精品中文字幕 | 日日摸夜夜摸狠狠摸婷婷 | 亚洲另类伦春色综合小说 | 中文字幕人妻丝袜二区 | 欧美老妇与禽交 | 国产凸凹视频一区二区 | 亚洲欧美日韩国产精品一区二区 | 狂野欧美激情性xxxx | 国产又爽又黄又刺激的视频 | 97se亚洲精品一区 | 全球成人中文在线 | 久久久久久久人妻无码中文字幕爆 | 激情内射亚州一区二区三区爱妻 | 1000部啪啪未满十八勿入下载 | 日本护士毛茸茸高潮 | 无码一区二区三区在线观看 | 男女作爱免费网站 | 免费乱码人妻系列无码专区 | 人人妻人人澡人人爽欧美精品 | 又大又黄又粗又爽的免费视频 | 爆乳一区二区三区无码 | 免费乱码人妻系列无码专区 | 在线观看免费人成视频 | 亚洲日韩中文字幕在线播放 | 亚洲欧洲日本综合aⅴ在线 | 无遮挡啪啪摇乳动态图 | 中文字幕 亚洲精品 第1页 | 国产成人无码一二三区视频 | 婷婷六月久久综合丁香 | 少妇的肉体aa片免费 | 少妇的肉体aa片免费 | 国内精品一区二区三区不卡 | 成熟妇人a片免费看网站 | 久久精品中文字幕一区 | 欧美三级不卡在线观看 | 欧美性生交活xxxxxdddd | 俺去俺来也在线www色官网 | 国产真人无遮挡作爱免费视频 | 天天做天天爱天天爽综合网 | 亚洲欧洲日本无在线码 | 一二三四社区在线中文视频 | 中文字幕av日韩精品一区二区 | 精品一区二区三区无码免费视频 | 久久久国产精品无码免费专区 | 午夜精品久久久久久久久 | 鲁大师影院在线观看 | 欧洲熟妇精品视频 | 午夜福利不卡在线视频 | 日本www一道久久久免费榴莲 | 免费无码av一区二区 | 无码乱肉视频免费大全合集 | 亚洲精品一区二区三区婷婷月 | 国产三级精品三级男人的天堂 | 久久久www成人免费毛片 | 久久久久久九九精品久 | 男人的天堂2018无码 | 人妻夜夜爽天天爽三区 | 欧美zoozzooz性欧美 | 双乳奶水饱满少妇呻吟 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美老人巨大xxxx做受 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲精品无码人妻无码 | 少妇无套内谢久久久久 | 国产精品99爱免费视频 | 亚洲欧美国产精品专区久久 | 国产精品多人p群无码 | 性欧美熟妇videofreesex | 少妇性俱乐部纵欲狂欢电影 | 日本肉体xxxx裸交 | 精品水蜜桃久久久久久久 | 亚洲无人区午夜福利码高清完整版 | 老头边吃奶边弄进去呻吟 | 亚洲日本一区二区三区在线 | 久久久无码中文字幕久... | 久久久久成人精品免费播放动漫 | 亚洲综合久久一区二区 | 国产又爽又黄又刺激的视频 | 欧美丰满熟妇xxxx性ppx人交 | 午夜无码人妻av大片色欲 | 中文字幕中文有码在线 | 中文字幕无码人妻少妇免费 | 日日天干夜夜狠狠爱 | 国产一精品一av一免费 | 麻豆av传媒蜜桃天美传媒 | 在线播放免费人成毛片乱码 | 最近中文2019字幕第二页 | 无码福利日韩神码福利片 | 玩弄中年熟妇正在播放 | 无码午夜成人1000部免费视频 | 国产va免费精品观看 | 国产人妖乱国产精品人妖 | 欧美成人家庭影院 | 一个人看的视频www在线 | 久久久久亚洲精品中文字幕 | 国产热a欧美热a在线视频 | 中文字幕无码免费久久9一区9 | 亚洲欧美综合区丁香五月小说 | 国产综合在线观看 | 日本护士毛茸茸高潮 | 日韩欧美成人免费观看 | 兔费看少妇性l交大片免费 | 又粗又大又硬又长又爽 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 无码精品人妻一区二区三区av | 国内综合精品午夜久久资源 | 丰满肥臀大屁股熟妇激情视频 | 国产麻豆精品一区二区三区v视界 | 两性色午夜免费视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 中国大陆精品视频xxxx | 亚洲色大成网站www国产 | 久久久精品欧美一区二区免费 | 亚洲精品久久久久avwww潮水 | 成人精品视频一区二区三区尤物 | 国产精品久久久久无码av色戒 | 少妇激情av一区二区 | 大胆欧美熟妇xx | 丰满护士巨好爽好大乳 | 美女极度色诱视频国产 | 日本一本二本三区免费 | 人妻有码中文字幕在线 | 欧美日韩久久久精品a片 | 人人妻人人澡人人爽人人精品浪潮 | 99久久精品日本一区二区免费 | 99久久久无码国产aaa精品 | 亚洲中文字幕无码中字 | 中文字幕人妻丝袜二区 | 粗大的内捧猛烈进出视频 | 国产猛烈高潮尖叫视频免费 | 亚洲小说图区综合在线 | 亚洲熟女一区二区三区 | 亚洲欧美精品伊人久久 | 亚洲s色大片在线观看 | 欧美色就是色 | 国产精品无码永久免费888 | 国产舌乚八伦偷品w中 | 亚洲精品久久久久久一区二区 | 无码乱肉视频免费大全合集 | 中文字幕无码av激情不卡 | 亚洲欧洲日本无在线码 | 爽爽影院免费观看 | 玩弄少妇高潮ⅹxxxyw | 色狠狠av一区二区三区 | 成人毛片一区二区 | 国产乱人伦av在线无码 | 蜜臀aⅴ国产精品久久久国产老师 | 国产亚洲人成在线播放 | 国产亚洲欧美在线专区 | 国产精品免费大片 | 狠狠色噜噜狠狠狠狠7777米奇 | 妺妺窝人体色www在线小说 | 国产精品久久久久久亚洲毛片 | 精品久久久久久人妻无码中文字幕 | a在线亚洲男人的天堂 | 欧美真人作爱免费视频 | 亚洲日韩av一区二区三区四区 | 一个人看的www免费视频在线观看 | 国产午夜亚洲精品不卡下载 | 麻花豆传媒剧国产免费mv在线 | 久久久久久a亚洲欧洲av冫 | 乱中年女人伦av三区 | 国产午夜亚洲精品不卡 | 麻花豆传媒剧国产免费mv在线 | 红桃av一区二区三区在线无码av | 四虎国产精品一区二区 | 国产免费久久精品国产传媒 | 日韩人妻无码一区二区三区久久99 | 天天拍夜夜添久久精品大 | 未满小14洗澡无码视频网站 | 国产又爽又黄又刺激的视频 | 亚洲一区二区三区四区 | 美女极度色诱视频国产 | 日本丰满护士爆乳xxxx | 国产精品久久久久7777 | 国产在热线精品视频 | 亚洲一区二区三区国产精华液 | 欧美 日韩 亚洲 在线 | 中文字幕乱码人妻无码久久 | 青青青爽视频在线观看 | 色综合视频一区二区三区 | 东京热无码av男人的天堂 | 美女黄网站人色视频免费国产 | 国产性生交xxxxx无码 | 欧美老人巨大xxxx做受 | 免费无码的av片在线观看 | 97无码免费人妻超级碰碰夜夜 | 中文字幕乱码亚洲无线三区 | 76少妇精品导航 | 国色天香社区在线视频 | 狠狠亚洲超碰狼人久久 | 曰韩无码二三区中文字幕 | 日欧一片内射va在线影院 | 人妻人人添人妻人人爱 | 曰本女人与公拘交酡免费视频 | 亚洲精品国产精品乱码不卡 | 国产特级毛片aaaaaaa高清 | 大屁股大乳丰满人妻 | 捆绑白丝粉色jk震动捧喷白浆 | 99麻豆久久久国产精品免费 | 无码乱肉视频免费大全合集 | 国产97在线 | 亚洲 | 亚洲人成网站免费播放 | 呦交小u女精品视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产真人无遮挡作爱免费视频 | 在线播放无码字幕亚洲 | 日韩人妻少妇一区二区三区 | 国产极品美女高潮无套在线观看 | 波多野结衣高清一区二区三区 | 黑人大群体交免费视频 | 久久99久久99精品中文字幕 | 婷婷六月久久综合丁香 | 黑人粗大猛烈进出高潮视频 | 日日麻批免费40分钟无码 | 亚洲中文字幕乱码av波多ji | 色妞www精品免费视频 | 亚洲综合无码一区二区三区 | 国产成人精品必看 | 日韩精品无码一区二区中文字幕 | 日韩亚洲欧美中文高清在线 | 一本色道久久综合亚洲精品不卡 | 小sao货水好多真紧h无码视频 | 全黄性性激高免费视频 | 亚洲国产精品无码久久久久高潮 | 一区二区三区乱码在线 | 欧洲 | 扒开双腿疯狂进出爽爽爽视频 | 国产在线精品一区二区高清不卡 | 亚洲色欲久久久综合网东京热 | 日本饥渴人妻欲求不满 | 日韩成人一区二区三区在线观看 | 精品国产一区二区三区av 性色 | 成 人 网 站国产免费观看 | 在线观看欧美一区二区三区 | 丁香花在线影院观看在线播放 | 激情五月综合色婷婷一区二区 | 国产精品久久国产三级国 | 最新国产乱人伦偷精品免费网站 | 无遮挡国产高潮视频免费观看 | 成人欧美一区二区三区黑人免费 | 乱码午夜-极国产极内射 | 99re在线播放 | 亚洲精品鲁一鲁一区二区三区 | 国内揄拍国内精品人妻 | 中文字幕中文有码在线 | 久久精品视频在线看15 | 亚洲国产精品毛片av不卡在线 | 国产亚洲精品久久久闺蜜 | 国产熟妇高潮叫床视频播放 | 久久久久国色av免费观看性色 | 成人毛片一区二区 | 国产性生大片免费观看性 | 乱人伦中文视频在线观看 | 无码av最新清无码专区吞精 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 桃花色综合影院 | 亚洲一区二区三区香蕉 | 成人亚洲精品久久久久软件 | 欧美精品免费观看二区 | 成人精品视频一区二区三区尤物 | 免费人成在线观看网站 | 国产做国产爱免费视频 | 动漫av网站免费观看 | 人妻有码中文字幕在线 | 国产精品久久久久久亚洲毛片 | 波多野结衣av一区二区全免费观看 | 人妻无码αv中文字幕久久琪琪布 | 2020最新国产自产精品 | 成人免费视频视频在线观看 免费 | 午夜丰满少妇性开放视频 | 麻豆av传媒蜜桃天美传媒 | 最近的中文字幕在线看视频 | 强奷人妻日本中文字幕 | 自拍偷自拍亚洲精品被多人伦好爽 | 精品人妻人人做人人爽夜夜爽 | 国内丰满熟女出轨videos | 国产精品无套呻吟在线 | 亚洲区欧美区综合区自拍区 | 久久zyz资源站无码中文动漫 | 麻豆国产97在线 | 欧洲 | 欧美成人高清在线播放 | 一本久道久久综合婷婷五月 | 色老头在线一区二区三区 | 久久久精品国产sm最大网站 | 一本久道久久综合婷婷五月 | 成在人线av无码免观看麻豆 | 国产无遮挡又黄又爽免费视频 | 亚洲熟女一区二区三区 | 日本一区二区更新不卡 | 久久久av男人的天堂 | 任你躁在线精品免费 | 色综合久久88色综合天天 | 一本无码人妻在中文字幕免费 | 亚洲va中文字幕无码久久不卡 | 乱中年女人伦av三区 | 少妇人妻大乳在线视频 | 亚洲日韩精品欧美一区二区 | 无码人妻黑人中文字幕 | 四虎影视成人永久免费观看视频 | 天天综合网天天综合色 | 在线а√天堂中文官网 | 狂野欧美激情性xxxx | 欧美人与善在线com | 久久精品中文闷骚内射 | 人人澡人人透人人爽 | 久久久无码中文字幕久... | 精品国偷自产在线 | 日韩在线不卡免费视频一区 | 偷窥日本少妇撒尿chinese | 国产精品内射视频免费 | 国产激情无码一区二区 | 亚洲啪av永久无码精品放毛片 | 88国产精品欧美一区二区三区 | 亚洲国产精品一区二区第一页 | 国产熟妇高潮叫床视频播放 | 久青草影院在线观看国产 | 人妻少妇精品无码专区动漫 | 免费中文字幕日韩欧美 | 乱码午夜-极国产极内射 | 精品一区二区三区无码免费视频 | 中文字幕无线码 | 麻豆国产97在线 | 欧洲 | 免费国产成人高清在线观看网站 | 欧美精品国产综合久久 | 国产亚洲精品久久久久久国模美 | 中文无码伦av中文字幕 | 亚洲 欧美 激情 小说 另类 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 午夜丰满少妇性开放视频 | 88国产精品欧美一区二区三区 | 午夜熟女插插xx免费视频 | 亚洲色无码一区二区三区 | 久久zyz资源站无码中文动漫 | www国产亚洲精品久久久日本 | 日本www一道久久久免费榴莲 | 精品夜夜澡人妻无码av蜜桃 | 成人片黄网站色大片免费观看 | 日韩亚洲欧美中文高清在线 | 亚洲乱码国产乱码精品精 | 噜噜噜亚洲色成人网站 | 亚洲va中文字幕无码久久不卡 | 久久亚洲中文字幕无码 | 免费观看黄网站 | 2020久久超碰国产精品最新 | 久久久亚洲欧洲日产国码αv | 色一情一乱一伦一视频免费看 | 性生交大片免费看女人按摩摩 | 日本乱偷人妻中文字幕 | 性欧美熟妇videofreesex | 欧美性黑人极品hd | 精品夜夜澡人妻无码av蜜桃 | 成在人线av无码免费 | 一个人免费观看的www视频 | 亚洲欧洲日本无在线码 | 网友自拍区视频精品 | 精品久久久无码中文字幕 | 国产无遮挡吃胸膜奶免费看 | 精品无码成人片一区二区98 | 女人被男人躁得好爽免费视频 | 少妇一晚三次一区二区三区 | 亚洲国产午夜精品理论片 | 国产精品福利视频导航 | 欧美熟妇另类久久久久久不卡 | 久激情内射婷内射蜜桃人妖 | 日韩精品a片一区二区三区妖精 | 精品国产精品久久一区免费式 | 欧美freesex黑人又粗又大 | 18禁止看的免费污网站 | 亚洲精品一区二区三区在线 | 日韩少妇内射免费播放 | 久久久久人妻一区精品色欧美 | 国产午夜无码视频在线观看 | 午夜无码区在线观看 | 亚洲精品鲁一鲁一区二区三区 | 男女爱爱好爽视频免费看 | 午夜福利不卡在线视频 | 亚洲精品一区二区三区大桥未久 | 亚洲欧美日韩国产精品一区二区 | 四虎4hu永久免费 | 人妻少妇精品无码专区动漫 | 又色又爽又黄的美女裸体网站 | 久久精品国产99久久6动漫 | 欧美人与物videos另类 | 四虎永久在线精品免费网址 | 精品一区二区三区无码免费视频 | 国产成人无码a区在线观看视频app | 亚洲一区二区三区偷拍女厕 | 在线精品国产一区二区三区 | 天下第一社区视频www日本 | 亚洲国产精品久久人人爱 | 人人妻人人澡人人爽精品欧美 | 国产真实乱对白精彩久久 | 国产精品国产三级国产专播 | 国产精品亚洲а∨无码播放麻豆 | 内射欧美老妇wbb | 少妇性荡欲午夜性开放视频剧场 | 亚洲人亚洲人成电影网站色 | 亚洲伊人久久精品影院 | 亚洲精品午夜国产va久久成人 | 一本精品99久久精品77 | 国产精品无码永久免费888 | 亚洲伊人久久精品影院 | 日韩欧美成人免费观看 | 青青久在线视频免费观看 | 国产精品多人p群无码 | 狂野欧美性猛交免费视频 | 欧美日韩在线亚洲综合国产人 | 天天摸天天碰天天添 | 国产亚洲日韩欧美另类第八页 | 东京热一精品无码av | 亚洲欧洲无卡二区视頻 | 理论片87福利理论电影 | 亚洲人成网站色7799 | 国产成人综合在线女婷五月99播放 | 粉嫩少妇内射浓精videos | 国产精品va在线观看无码 | 又紧又大又爽精品一区二区 | 性开放的女人aaa片 | 久久久无码中文字幕久... | 蜜臀av在线播放 久久综合激激的五月天 | 99久久人妻精品免费一区 | 国产婷婷色一区二区三区在线 | 人妻天天爽夜夜爽一区二区 | 给我免费的视频在线观看 | 成人性做爰aaa片免费看 | 国产一区二区三区四区五区加勒比 | 亚洲人成人无码网www国产 | 久久精品女人天堂av免费观看 | 无码精品国产va在线观看dvd | 麻花豆传媒剧国产免费mv在线 | 99久久99久久免费精品蜜桃 | 熟妇人妻无乱码中文字幕 | 婷婷丁香六月激情综合啪 | 国产人妻久久精品二区三区老狼 | 西西人体www44rt大胆高清 | 最近免费中文字幕中文高清百度 | 中文字幕无码热在线视频 | 激情内射亚州一区二区三区爱妻 | 5858s亚洲色大成网站www | 老子影院午夜伦不卡 | 少妇一晚三次一区二区三区 | 亚洲欧美综合区丁香五月小说 | 老熟妇乱子伦牲交视频 | 无码国产乱人伦偷精品视频 | 东京无码熟妇人妻av在线网址 | 久久国内精品自在自线 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 曰本女人与公拘交酡免费视频 | 中文精品久久久久人妻不卡 | 婷婷综合久久中文字幕蜜桃三电影 | 久久精品99久久香蕉国产色戒 | 天天躁夜夜躁狠狠是什么心态 | 未满小14洗澡无码视频网站 | 在线欧美精品一区二区三区 | 国产疯狂伦交大片 | 久久精品无码一区二区三区 | 国产精品久久久久久无码 | 少妇无码一区二区二三区 | 色婷婷av一区二区三区之红樱桃 | 人妻与老人中文字幕 | 免费国产黄网站在线观看 | 兔费看少妇性l交大片免费 | 蜜臀av无码人妻精品 | 欧美野外疯狂做受xxxx高潮 | 亚洲人成网站色7799 | 成人精品视频一区二区 | 少妇人妻av毛片在线看 | 国产精品美女久久久久av爽李琼 | 中文字幕av无码一区二区三区电影 | 成人三级无码视频在线观看 | 中文字幕乱码人妻二区三区 | 成熟女人特级毛片www免费 | 国产国产精品人在线视 | 精品久久久久久亚洲精品 | 伊人久久大香线蕉亚洲 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 99久久亚洲精品无码毛片 | 特级做a爰片毛片免费69 | 中文字幕av无码一区二区三区电影 | 亚洲日本va午夜在线电影 | 国产精品美女久久久网av | 亚洲国产高清在线观看视频 | 中文字幕无码热在线视频 | 午夜精品久久久内射近拍高清 | 曰本女人与公拘交酡免费视频 | 亚洲精品中文字幕久久久久 | 欧美人与善在线com | 欧美人与禽猛交狂配 | 久久精品视频在线看15 | 熟妇人妻无码xxx视频 | 99精品久久毛片a片 | 久久精品中文字幕大胸 | 精品无码国产一区二区三区av | 久久综合九色综合欧美狠狠 | 亚洲国产av精品一区二区蜜芽 | 国产内射爽爽大片视频社区在线 | 无码精品人妻一区二区三区av | 人人妻人人澡人人爽欧美一区九九 | 激情内射亚州一区二区三区爱妻 | 亚洲中文无码av永久不收费 | 狠狠色噜噜狠狠狠7777奇米 | 台湾无码一区二区 | 人妻夜夜爽天天爽三区 | 亚洲精品国产精品乱码视色 | 无码免费一区二区三区 | 性做久久久久久久久 | 欧美亚洲日韩国产人成在线播放 | 欧美老妇与禽交 | 国内精品九九久久久精品 | 丰满少妇高潮惨叫视频 | 亚洲精品国偷拍自产在线麻豆 | 国产偷自视频区视频 | 久久精品国产日本波多野结衣 | 一区二区三区高清视频一 | 久久久久久久人妻无码中文字幕爆 | 中文字幕无码热在线视频 | 国产农村妇女高潮大叫 | 成人影院yy111111在线观看 | 人人澡人人透人人爽 | 真人与拘做受免费视频一 | 日本成熟视频免费视频 | 奇米影视7777久久精品 | 四虎永久在线精品免费网址 | 精品无码一区二区三区爱欲 | 鲁一鲁av2019在线 | 国产精品久免费的黄网站 | 中文字幕+乱码+中文字幕一区 | 成人精品一区二区三区中文字幕 | 丰满少妇熟乱xxxxx视频 | 亚拍精品一区二区三区探花 | 精品国产aⅴ无码一区二区 | 日韩av无码一区二区三区 | 亚洲国产欧美在线成人 | 丰满人妻精品国产99aⅴ | 亚洲а∨天堂久久精品2021 | 中文字幕乱妇无码av在线 | 中文字幕无码视频专区 | 内射白嫩少妇超碰 | 久久久久久国产精品无码下载 | 三上悠亚人妻中文字幕在线 | 理论片87福利理论电影 | 亚洲欧洲日本综合aⅴ在线 | 亚洲熟妇色xxxxx欧美老妇y | 国产亚洲精品精品国产亚洲综合 | 日产精品高潮呻吟av久久 | 中文字幕无码免费久久9一区9 | 亚洲国产av精品一区二区蜜芽 | 亚洲最大成人网站 | 99久久人妻精品免费二区 | 香港三级日本三级妇三级 | 性开放的女人aaa片 | 偷窥日本少妇撒尿chinese | 日本成熟视频免费视频 | 久久久久99精品成人片 | 免费播放一区二区三区 | 天堂在线观看www | 激情人妻另类人妻伦 | 久久久精品欧美一区二区免费 | 亚欧洲精品在线视频免费观看 | 亚洲а∨天堂久久精品2021 | 国产精品亚洲一区二区三区喷水 | 欧美第一黄网免费网站 | 性色av无码免费一区二区三区 | 成人无码精品一区二区三区 | 精品国产一区二区三区四区 | av人摸人人人澡人人超碰下载 | 亚洲精品一区国产 | 97se亚洲精品一区 | 久久天天躁夜夜躁狠狠 | 任你躁国产自任一区二区三区 | 亚洲熟女一区二区三区 | 精品一区二区三区无码免费视频 | 中文字幕人妻丝袜二区 | 亚洲成熟女人毛毛耸耸多 | 中文字幕 亚洲精品 第1页 | 97人妻精品一区二区三区 | 亚洲一区二区三区含羞草 | 久久精品视频在线看15 | 四十如虎的丰满熟妇啪啪 | 亚洲一区二区三区无码久久 | 国产精品亚洲专区无码不卡 | 亚洲gv猛男gv无码男同 | 乱人伦中文视频在线观看 | 大地资源网第二页免费观看 | 久久精品中文字幕大胸 | 在线成人www免费观看视频 | 亚洲色欲久久久综合网东京热 | 日产精品99久久久久久 | 久久久久久久女国产乱让韩 | 中文亚洲成a人片在线观看 | 亚洲精品久久久久avwww潮水 | 18无码粉嫩小泬无套在线观看 | 国产97色在线 | 免 | 日日橹狠狠爱欧美视频 | 国产精品久久久久久亚洲毛片 | 亚洲成av人片在线观看无码不卡 | 日本饥渴人妻欲求不满 | 日日天日日夜日日摸 | 俺去俺来也www色官网 | 国产乡下妇女做爰 | 亚洲中文字幕在线无码一区二区 | 亚洲gv猛男gv无码男同 | 日本丰满护士爆乳xxxx | 欧美兽交xxxx×视频 | 午夜精品久久久久久久久 | 久久久精品国产sm最大网站 | 性欧美牲交xxxxx视频 | 午夜福利试看120秒体验区 | 人人爽人人澡人人高潮 | 亚洲人交乣女bbw | 十八禁视频网站在线观看 | 人妻少妇精品无码专区二区 | 在线播放免费人成毛片乱码 | 无码人妻精品一区二区三区不卡 | 最近中文2019字幕第二页 | 久久国产36精品色熟妇 | 国产精品亚洲一区二区三区喷水 | 国产艳妇av在线观看果冻传媒 | 久久午夜无码鲁丝片 | 人人爽人人爽人人片av亚洲 | 漂亮人妻洗澡被公强 日日躁 | 亚洲色欲色欲天天天www | 久久久久99精品国产片 | 国产9 9在线 | 中文 | 夜夜躁日日躁狠狠久久av | 正在播放东北夫妻内射 | 国产精品无码成人午夜电影 | 亚洲精品一区二区三区在线 | 成年美女黄网站色大免费视频 | 久久人人97超碰a片精品 | 九九综合va免费看 | 亚洲狠狠色丁香婷婷综合 | 一本精品99久久精品77 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲男人av天堂午夜在 | 一个人看的www免费视频在线观看 | 任你躁国产自任一区二区三区 | 久久99精品国产麻豆蜜芽 | 亚洲成av人影院在线观看 | 国内少妇偷人精品视频 | 色一情一乱一伦一区二区三欧美 | 无码人妻黑人中文字幕 | 无码国产激情在线观看 | 亚洲一区二区三区国产精华液 | 亚洲一区二区三区含羞草 | 麻豆精产国品 | 亚洲а∨天堂久久精品2021 | 亚洲日本va午夜在线电影 | 欧美熟妇另类久久久久久不卡 | 亚洲欧美精品伊人久久 | 免费人成网站视频在线观看 | 精品久久久中文字幕人妻 | 亚洲乱码国产乱码精品精 | 欧美日韩精品 | 天天摸天天碰天天添 | 日本www一道久久久免费榴莲 | 国产熟女一区二区三区四区五区 | 亚洲欧美日韩成人高清在线一区 | 天天摸天天碰天天添 | 欧美怡红院免费全部视频 | 国产成人久久精品流白浆 | 午夜精品久久久内射近拍高清 | 国产热a欧美热a在线视频 | 国产精品无码mv在线观看 | 精品欧美一区二区三区久久久 | 色婷婷综合中文久久一本 | 日本熟妇大屁股人妻 | 国产乡下妇女做爰 | www成人国产高清内射 | 国内综合精品午夜久久资源 | 国产偷抇久久精品a片69 | 在教室伦流澡到高潮hnp视频 | 性史性农村dvd毛片 | 国产亚洲精品久久久久久大师 | 在线观看免费人成视频 | 狠狠综合久久久久综合网 | 天下第一社区视频www日本 | 精品无码国产一区二区三区av | 久9re热视频这里只有精品 | 久热国产vs视频在线观看 | 欧美丰满老熟妇xxxxx性 | 风流少妇按摩来高潮 | 国产av无码专区亚洲awww | 日本在线高清不卡免费播放 | 国产精品欧美成人 | 国产特级毛片aaaaaaa高清 | 日本精品久久久久中文字幕 | 一个人看的视频www在线 | 真人与拘做受免费视频 | 亚洲男人av香蕉爽爽爽爽 | 国产成人无码午夜视频在线观看 | 福利一区二区三区视频在线观看 | 中文字幕人妻丝袜二区 | 成人一区二区免费视频 | 亚洲色大成网站www国产 | 国产精品国产三级国产专播 | 高中生自慰www网站 | 麻豆蜜桃av蜜臀av色欲av | 强伦人妻一区二区三区视频18 | 熟妇人妻无码xxx视频 | 18禁止看的免费污网站 | 欧美freesex黑人又粗又大 | 天天拍夜夜添久久精品 | 国产艳妇av在线观看果冻传媒 | 国产精品欧美成人 | 亚洲精品欧美二区三区中文字幕 | 亚洲国产精华液网站w | 影音先锋中文字幕无码 | 国产精品久久久久久亚洲影视内衣 | 久久久久免费精品国产 | 欧美乱妇无乱码大黄a片 | 亚洲色偷偷男人的天堂 | 欧美国产亚洲日韩在线二区 | 最新版天堂资源中文官网 | 人人妻人人澡人人爽欧美精品 | 国产精品久久久久久无码 | 亚无码乱人伦一区二区 | 少妇性荡欲午夜性开放视频剧场 | 成熟人妻av无码专区 | 国产精品高潮呻吟av久久4虎 | 少妇人妻av毛片在线看 | 999久久久国产精品消防器材 | 东京一本一道一二三区 | 国产av无码专区亚洲a∨毛片 | 国产成人精品三级麻豆 | 久久久久99精品成人片 | 成人试看120秒体验区 | 全球成人中文在线 | 国产另类ts人妖一区二区 | 伊人久久大香线蕉av一区二区 | 国产成人一区二区三区别 | 国内精品一区二区三区不卡 | 久久国产精品萌白酱免费 | 国产一区二区三区四区五区加勒比 | 六月丁香婷婷色狠狠久久 | 亚洲成在人网站无码天堂 | 18黄暴禁片在线观看 | 中文字幕av日韩精品一区二区 | 性啪啪chinese东北女人 | 久久精品成人欧美大片 | 中文字幕无码免费久久99 | 亚洲高清偷拍一区二区三区 | 一本大道伊人av久久综合 | 亚洲欧洲日本无在线码 | 国产精品视频免费播放 | 99久久无码一区人妻 | 国产亚洲精品精品国产亚洲综合 | 无码任你躁久久久久久久 | 亚洲人交乣女bbw | 亚洲国产精品久久人人爱 | 亚洲热妇无码av在线播放 | 性欧美熟妇videofreesex | 亚洲精品午夜无码电影网 | 天天摸天天碰天天添 | 欧美黑人巨大xxxxx | 精品少妇爆乳无码av无码专区 | 亚洲天堂2017无码中文 | 永久免费观看国产裸体美女 | 2020最新国产自产精品 | 亚洲精品综合一区二区三区在线 | 乌克兰少妇性做爰 | 国产成人无码一二三区视频 | 蜜桃视频韩日免费播放 | 国产一区二区三区四区五区加勒比 | 欧美刺激性大交 | 狠狠色丁香久久婷婷综合五月 | 成 人 免费观看网站 | 精品国产成人一区二区三区 | 亚洲国产精品一区二区第一页 | 熟妇人妻无乱码中文字幕 | 日产精品高潮呻吟av久久 | 成熟妇人a片免费看网站 | 亚洲精品鲁一鲁一区二区三区 | 99久久久无码国产精品免费 | 熟女少妇在线视频播放 | 午夜理论片yy44880影院 | 国产xxx69麻豆国语对白 | 亚洲精品欧美二区三区中文字幕 | 扒开双腿吃奶呻吟做受视频 | 天堂а√在线中文在线 | 日韩人妻无码中文字幕视频 | 免费中文字幕日韩欧美 | 国产在线精品一区二区高清不卡 | 成熟人妻av无码专区 | 天堂在线观看www | 成人性做爰aaa片免费看 | 中文字幕中文有码在线 | 久久国产精品二国产精品 | 亚洲熟熟妇xxxx | 欧美 日韩 亚洲 在线 | 亚洲精品午夜国产va久久成人 | 九九在线中文字幕无码 | 国产人妻人伦精品1国产丝袜 | 久久综合香蕉国产蜜臀av | 久久精品一区二区三区四区 | 乱码午夜-极国产极内射 | 亚洲成a人片在线观看无码 | 国产免费久久久久久无码 | 国产一区二区三区精品视频 | 美女扒开屁股让男人桶 | 狠狠综合久久久久综合网 | 荫蒂添的好舒服视频囗交 | 日本丰满熟妇videos | 色婷婷综合中文久久一本 | 亚洲综合精品香蕉久久网 | 大肉大捧一进一出好爽视频 | av在线亚洲欧洲日产一区二区 | 国产小呦泬泬99精品 | 学生妹亚洲一区二区 | 18精品久久久无码午夜福利 | 欧美日本日韩 | 小鲜肉自慰网站xnxx | 国产两女互慰高潮视频在线观看 | 97资源共享在线视频 | 精品偷自拍另类在线观看 | 亚洲国产精品美女久久久久 | 人妻有码中文字幕在线 | 中文无码成人免费视频在线观看 | 狠狠综合久久久久综合网 | 一个人看的视频www在线 | 久久99精品久久久久久动态图 | 伊人色综合久久天天小片 | 帮老师解开蕾丝奶罩吸乳网站 | 99久久无码一区人妻 | 国精产品一品二品国精品69xx | 午夜理论片yy44880影院 | 牲交欧美兽交欧美 | 亚洲色偷偷偷综合网 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 欧美35页视频在线观看 | 国产成人av免费观看 | 丁香花在线影院观看在线播放 | 狠狠亚洲超碰狼人久久 | 精品欧美一区二区三区久久久 | 成人精品视频一区二区 | 国内少妇偷人精品视频 | 国产激情一区二区三区 | 性史性农村dvd毛片 | 成人免费无码大片a毛片 | 亚洲阿v天堂在线 | 国产九九九九九九九a片 | 男女猛烈xx00免费视频试看 | 久久99精品国产麻豆蜜芽 | 国内精品人妻无码久久久影院蜜桃 | 领导边摸边吃奶边做爽在线观看 | 亚洲中文字幕成人无码 | 激情内射亚州一区二区三区爱妻 | 亚洲七七久久桃花影院 | 国产精品久免费的黄网站 | 国产精品亚洲а∨无码播放麻豆 | 色情久久久av熟女人妻网站 | 欧美三级a做爰在线观看 | 欧美刺激性大交 | 丝袜 中出 制服 人妻 美腿 | 精品一区二区不卡无码av | 国产av无码专区亚洲a∨毛片 | 小sao货水好多真紧h无码视频 | 在线 国产 欧美 亚洲 天堂 | 午夜不卡av免费 一本久久a久久精品vr综合 | 97精品人妻一区二区三区香蕉 | 精品无码国产自产拍在线观看蜜 | 日韩 欧美 动漫 国产 制服 | 东京热无码av男人的天堂 | 国内老熟妇对白xxxxhd | √天堂中文官网8在线 | 高潮喷水的毛片 | 日韩av激情在线观看 | 在教室伦流澡到高潮hnp视频 | 亚洲区小说区激情区图片区 | 老头边吃奶边弄进去呻吟 | 亚洲人成网站在线播放942 | 国产内射爽爽大片视频社区在线 | 中文无码精品a∨在线观看不卡 | 中文字幕人妻无码一区二区三区 | 中文字幕乱妇无码av在线 | 丁香啪啪综合成人亚洲 | 日本成熟视频免费视频 | 国产午夜亚洲精品不卡 | 欧美精品国产综合久久 | 无码av岛国片在线播放 | 少妇人妻av毛片在线看 | 亚洲国产精品一区二区第一页 | 国产人成高清在线视频99最全资源 | 亚洲一区二区观看播放 | 曰本女人与公拘交酡免费视频 | 伊人久久大香线焦av综合影院 | 国内精品久久久久久中文字幕 | 国产人妻精品午夜福利免费 | 午夜丰满少妇性开放视频 | 日韩在线不卡免费视频一区 | 亚洲爆乳大丰满无码专区 | 精品乱子伦一区二区三区 | 国产精品自产拍在线观看 | 免费看少妇作爱视频 | 人人超人人超碰超国产 | 无码国模国产在线观看 | 精品偷自拍另类在线观看 | 久久97精品久久久久久久不卡 | 四虎国产精品一区二区 | 日韩成人一区二区三区在线观看 | 日本成熟视频免费视频 | 伊人色综合久久天天小片 | 欧美成人免费全部网站 | 永久黄网站色视频免费直播 | 午夜嘿嘿嘿影院 | 少妇高潮一区二区三区99 | 99精品国产综合久久久久五月天 | 暴力强奷在线播放无码 | 又大又黄又粗又爽的免费视频 | 丰满护士巨好爽好大乳 | 国产精品久久久 | 色一情一乱一伦一视频免费看 | 亚洲va欧美va天堂v国产综合 | 欧美老人巨大xxxx做受 | 日韩精品a片一区二区三区妖精 | 未满成年国产在线观看 | 丝袜人妻一区二区三区 | 久久国产精品_国产精品 | 午夜肉伦伦影院 | 日本又色又爽又黄的a片18禁 |