久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

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

数据库

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宏观架构与原理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

狂野欧美性猛交免费视频 | 3d动漫精品啪啪一区二区中 | 久久综合九色综合欧美狠狠 | 国产午夜福利100集发布 | 亚洲国产精品一区二区第一页 | 欧美性色19p | 国产亚洲精品久久久久久 | 欧美野外疯狂做受xxxx高潮 | 综合人妻久久一区二区精品 | 午夜理论片yy44880影院 | 人人妻人人澡人人爽人人精品浪潮 | 76少妇精品导航 | 国产精品久久久午夜夜伦鲁鲁 | 久久五月精品中文字幕 | 国产sm调教视频在线观看 | 国产国语老龄妇女a片 | 色婷婷久久一区二区三区麻豆 | 51国偷自产一区二区三区 | 国产精品久久国产三级国 | 牲交欧美兽交欧美 | 日产精品99久久久久久 | 国产偷国产偷精品高清尤物 | 精品久久综合1区2区3区激情 | 无人区乱码一区二区三区 | 欧洲熟妇精品视频 | 中文字幕av伊人av无码av | 亚洲国产精品久久久久久 | 亚洲色无码一区二区三区 | 日韩在线不卡免费视频一区 | 97人妻精品一区二区三区 | 丰满少妇女裸体bbw | 人人妻人人澡人人爽人人精品浪潮 | 伊人久久大香线焦av综合影院 | 精品无人区无码乱码毛片国产 | 人人爽人人爽人人片av亚洲 | 精品无码成人片一区二区98 | 大乳丰满人妻中文字幕日本 | 狠狠色欧美亚洲狠狠色www | 男人扒开女人内裤强吻桶进去 | 国产偷国产偷精品高清尤物 | 色五月丁香五月综合五月 | 老头边吃奶边弄进去呻吟 | 熟妇人妻激情偷爽文 | 黑人玩弄人妻中文在线 | 久久久久亚洲精品中文字幕 | 亚洲精品综合五月久久小说 | 中文字幕无线码免费人妻 | 欧美亚洲日韩国产人成在线播放 | 一个人免费观看的www视频 | 日本熟妇乱子伦xxxx | 啦啦啦www在线观看免费视频 | 亚洲中文字幕av在天堂 | 红桃av一区二区三区在线无码av | 欧洲熟妇色 欧美 | 又紧又大又爽精品一区二区 | 欧美老人巨大xxxx做受 | 欧美三级不卡在线观看 | 天天拍夜夜添久久精品 | 久久精品女人天堂av免费观看 | 无套内谢老熟女 | 18无码粉嫩小泬无套在线观看 | 青青久在线视频免费观看 | 免费人成网站视频在线观看 | 在线a亚洲视频播放在线观看 | 欧美丰满老熟妇xxxxx性 | 国产午夜手机精彩视频 | 国产成人一区二区三区别 | 欧美人与善在线com | 国产亲子乱弄免费视频 | 欧美日本精品一区二区三区 | 色婷婷久久一区二区三区麻豆 | 日韩av无码中文无码电影 | 欧美国产亚洲日韩在线二区 | 久久久久亚洲精品中文字幕 | a国产一区二区免费入口 | 在线播放免费人成毛片乱码 | 亚洲中文字幕在线观看 | 在线观看国产午夜福利片 | 国产免费久久久久久无码 | 亚洲中文字幕无码中文字在线 | 免费人成在线视频无码 | 亚洲区小说区激情区图片区 | 九九热爱视频精品 | 2019午夜福利不卡片在线 | 日韩无码专区 | 中文字幕无码av波多野吉衣 | 爆乳一区二区三区无码 | 高中生自慰www网站 | 欧美人与善在线com | 亚洲一区二区三区无码久久 | 97人妻精品一区二区三区 | 狂野欧美性猛xxxx乱大交 | 丰满少妇人妻久久久久久 | 97夜夜澡人人爽人人喊中国片 | www国产精品内射老师 | 精品aⅴ一区二区三区 | 亚洲 激情 小说 另类 欧美 | 宝宝好涨水快流出来免费视频 | 天堂亚洲2017在线观看 | 久久久久久久人妻无码中文字幕爆 | 亚洲成熟女人毛毛耸耸多 | 色综合久久久久综合一本到桃花网 | 亚洲 另类 在线 欧美 制服 | 欧美丰满熟妇xxxx性ppx人交 | 国产精品国产自线拍免费软件 | 天干天干啦夜天干天2017 | 久久亚洲a片com人成 | 欧美肥老太牲交大战 | 久久婷婷五月综合色国产香蕉 | 一本色道婷婷久久欧美 | 熟女少妇在线视频播放 | 久久五月精品中文字幕 | 国产69精品久久久久app下载 | 中文久久乱码一区二区 | 亚洲人亚洲人成电影网站色 | 欧洲熟妇色 欧美 | 日日天日日夜日日摸 | 午夜成人1000部免费视频 | 无码中文字幕色专区 | 精品国产国产综合精品 | 成人亚洲精品久久久久软件 | 欧美肥老太牲交大战 | 欧美国产日产一区二区 | 国内少妇偷人精品视频 | 久久精品人妻少妇一区二区三区 | 久久99精品久久久久久动态图 | 精品无码国产一区二区三区av | 青春草在线视频免费观看 | 久久久精品成人免费观看 | 欧洲精品码一区二区三区免费看 | 97夜夜澡人人爽人人喊中国片 | 亚洲熟女一区二区三区 | 人妻天天爽夜夜爽一区二区 | 性做久久久久久久久 | 亚洲欧美精品伊人久久 | 久久久中文字幕日本无吗 | 一本久久a久久精品亚洲 | 国产亚洲精品久久久ai换 | 亚洲熟妇色xxxxx欧美老妇y | 狠狠色色综合网站 | 人人爽人人爽人人片av亚洲 | 日韩精品a片一区二区三区妖精 | 亚洲の无码国产の无码影院 | 真人与拘做受免费视频一 | 青春草在线视频免费观看 | 久久综合激激的五月天 | 国产精品久久久久久亚洲影视内衣 | 麻豆md0077饥渴少妇 | 国产精品无套呻吟在线 | 久久精品女人天堂av免费观看 | 一本无码人妻在中文字幕免费 | 亚洲精品国产第一综合99久久 | 亚洲阿v天堂在线 | 国产av人人夜夜澡人人爽麻豆 | 成人欧美一区二区三区 | 成人无码视频在线观看网站 | 波多野结衣一区二区三区av免费 | 成人一区二区免费视频 | 国产一区二区不卡老阿姨 | 精品人妻中文字幕有码在线 | 久久国产精品二国产精品 | 毛片内射-百度 | 国产成人久久精品流白浆 | 成人免费视频视频在线观看 免费 | 久久久精品456亚洲影院 | 三级4级全黄60分钟 | 爽爽影院免费观看 | a国产一区二区免费入口 | 少妇性l交大片欧洲热妇乱xxx | 亚洲无人区午夜福利码高清完整版 | 成熟女人特级毛片www免费 | √8天堂资源地址中文在线 | 国产乱人偷精品人妻a片 | 欧美大屁股xxxxhd黑色 | 色五月五月丁香亚洲综合网 | 成人精品视频一区二区三区尤物 | 国产在热线精品视频 | 亚洲中文字幕在线观看 | 久在线观看福利视频 | 国产人妻精品一区二区三区不卡 | 日本一卡2卡3卡四卡精品网站 | 欧美人与牲动交xxxx | 国产在线精品一区二区高清不卡 | 无码av免费一区二区三区试看 | 国内综合精品午夜久久资源 | 欧美老熟妇乱xxxxx | 久久成人a毛片免费观看网站 | 成人毛片一区二区 | 欧美 丝袜 自拍 制服 另类 | 国产内射爽爽大片视频社区在线 | 伊在人天堂亚洲香蕉精品区 | 国产美女精品一区二区三区 | 女人被男人躁得好爽免费视频 | 大肉大捧一进一出视频出来呀 | 天堂亚洲2017在线观看 | 国产精品亚洲а∨无码播放麻豆 | 色偷偷人人澡人人爽人人模 | 成人精品视频一区二区三区尤物 | 亚洲中文字幕在线无码一区二区 | 国产成人精品一区二区在线小狼 | 国产办公室秘书无码精品99 | 精品水蜜桃久久久久久久 | 国内精品久久久久久中文字幕 | 六月丁香婷婷色狠狠久久 | 又色又爽又黄的美女裸体网站 | 黑森林福利视频导航 | 天下第一社区视频www日本 | 99久久久无码国产精品免费 | 国产一区二区三区四区五区加勒比 | 色窝窝无码一区二区三区色欲 | 丰满少妇熟乱xxxxx视频 | 无码av岛国片在线播放 | 午夜时刻免费入口 | 国产精品毛多多水多 | 性史性农村dvd毛片 | 国产真人无遮挡作爱免费视频 | 中文字幕av无码一区二区三区电影 | 精品国产一区二区三区av 性色 | 久久精品一区二区三区四区 | 成在人线av无码免费 | 亚洲一区av无码专区在线观看 | 夜先锋av资源网站 | 国产精品手机免费 | 麻花豆传媒剧国产免费mv在线 | 精品久久久久久人妻无码中文字幕 | 亚洲乱码日产精品bd | 国产午夜视频在线观看 | 中文字幕精品av一区二区五区 | 亚洲国产精华液网站w | 窝窝午夜理论片影院 | 人妻无码αv中文字幕久久琪琪布 | 无码人妻久久一区二区三区不卡 | 欧美性黑人极品hd | 欧洲欧美人成视频在线 | 国产亚洲欧美日韩亚洲中文色 | 精品国产av色一区二区深夜久久 | 亚洲第一网站男人都懂 | 久久亚洲国产成人精品性色 | 亚洲国产一区二区三区在线观看 | 又色又爽又黄的美女裸体网站 | 欧美黑人性暴力猛交喷水 | 国产乱子伦视频在线播放 | 青草青草久热国产精品 | 国产精品久免费的黄网站 | 国产一区二区三区影院 | 亚洲狠狠色丁香婷婷综合 | 久久国产自偷自偷免费一区调 | 日产精品高潮呻吟av久久 | 久久久久99精品成人片 | 久久这里只有精品视频9 | 国内少妇偷人精品视频免费 | 人人妻人人澡人人爽人人精品 | av无码久久久久不卡免费网站 | 亚洲区小说区激情区图片区 | 国产亲子乱弄免费视频 | 欧美黑人性暴力猛交喷水 | 国产香蕉尹人综合在线观看 | 亚洲中文字幕av在天堂 | 成人无码精品1区2区3区免费看 | av香港经典三级级 在线 | 国产九九九九九九九a片 | 亚洲热妇无码av在线播放 | 日本肉体xxxx裸交 | 久久精品国产日本波多野结衣 | 爆乳一区二区三区无码 | 久久国产精品萌白酱免费 | 国产情侣作爱视频免费观看 | 特大黑人娇小亚洲女 | 国内揄拍国内精品人妻 | 久久久久人妻一区精品色欧美 | 免费观看黄网站 | 亚洲精品久久久久久久久久久 | 在线亚洲高清揄拍自拍一品区 | 中文字幕av伊人av无码av | 国产农村妇女高潮大叫 | 欧美成人高清在线播放 | 夜夜影院未满十八勿进 | 欧美老熟妇乱xxxxx | 亚洲国产精品久久久久久 | 国产日产欧产精品精品app | 男女下面进入的视频免费午夜 | 又粗又大又硬毛片免费看 | 国产在线一区二区三区四区五区 | 午夜精品久久久内射近拍高清 | aa片在线观看视频在线播放 | 成人精品视频一区二区 | 久久精品视频在线看15 | 性欧美牲交xxxxx视频 | 青青久在线视频免费观看 | 亚洲中文字幕无码一久久区 | 国产凸凹视频一区二区 | 男女爱爱好爽视频免费看 | v一区无码内射国产 | 国语精品一区二区三区 | 午夜免费福利小电影 | 亚洲精品午夜国产va久久成人 | 久精品国产欧美亚洲色aⅴ大片 | 红桃av一区二区三区在线无码av | 色五月丁香五月综合五月 | 久久久久久九九精品久 | 任你躁国产自任一区二区三区 | 丁香啪啪综合成人亚洲 | 两性色午夜视频免费播放 | 狠狠cao日日穞夜夜穞av | 精品偷自拍另类在线观看 | 色综合天天综合狠狠爱 | 中文字幕无码视频专区 | 成人精品天堂一区二区三区 | 色欲综合久久中文字幕网 | 美女扒开屁股让男人桶 | 日本成熟视频免费视频 | 天天燥日日燥 | 亚洲 a v无 码免 费 成 人 a v | 欧美一区二区三区 | 日韩精品无码免费一区二区三区 | 亚洲人亚洲人成电影网站色 | 中文字幕日产无线码一区 | 成 人影片 免费观看 | 亚洲日韩中文字幕在线播放 | 性开放的女人aaa片 | 日本熟妇人妻xxxxx人hd | 午夜精品一区二区三区在线观看 | 亚洲成色www久久网站 | 久久久久亚洲精品中文字幕 | 国产激情无码一区二区 | 国内精品人妻无码久久久影院蜜桃 | 日本成熟视频免费视频 | www国产亚洲精品久久网站 | 中文毛片无遮挡高清免费 | 无遮无挡爽爽免费视频 | 国产麻豆精品精东影业av网站 | 无码av最新清无码专区吞精 | 黑人巨大精品欧美一区二区 | 亚洲精品国偷拍自产在线麻豆 | 无码人妻久久一区二区三区不卡 | 免费乱码人妻系列无码专区 | 精品水蜜桃久久久久久久 | 红桃av一区二区三区在线无码av | 特大黑人娇小亚洲女 | а天堂中文在线官网 | 国产欧美熟妇另类久久久 | 黄网在线观看免费网站 | 午夜理论片yy44880影院 | 午夜男女很黄的视频 | 久久精品国产精品国产精品污 | 国产精品自产拍在线观看 | 精品国产青草久久久久福利 | 国产一区二区三区四区五区加勒比 | 国产亚洲精品久久久闺蜜 | 国产香蕉尹人综合在线观看 | 女人色极品影院 | 国产精品久久国产精品99 | 国产精品香蕉在线观看 | 国产午夜精品一区二区三区嫩草 | 欧美亚洲国产一区二区三区 | 欧美高清在线精品一区 | 亚洲精品成a人在线观看 | 极品尤物被啪到呻吟喷水 | 国产极品美女高潮无套在线观看 | 乱码av麻豆丝袜熟女系列 | 午夜丰满少妇性开放视频 | 国产熟妇高潮叫床视频播放 | 性生交片免费无码看人 | 国产97人人超碰caoprom | 久青草影院在线观看国产 | 国产精品igao视频网 | 国产精品资源一区二区 | 夫妻免费无码v看片 | 国产69精品久久久久app下载 | 日韩无套无码精品 | 少妇一晚三次一区二区三区 | 国产成人无码区免费内射一片色欲 | 97精品人妻一区二区三区香蕉 | 特级做a爰片毛片免费69 | 亚洲日本va中文字幕 | 国产成人综合美国十次 | 7777奇米四色成人眼影 | 日日噜噜噜噜夜夜爽亚洲精品 | 欧美人与牲动交xxxx | 欧洲美熟女乱又伦 | 亚洲日韩乱码中文无码蜜桃臀网站 | 黑森林福利视频导航 | 强开小婷嫩苞又嫩又紧视频 | 无码任你躁久久久久久久 | 麻豆精品国产精华精华液好用吗 | 男女猛烈xx00免费视频试看 | 国产香蕉97碰碰久久人人 | 清纯唯美经典一区二区 | 国产偷国产偷精品高清尤物 | 老司机亚洲精品影院无码 | 久久国产劲爆∧v内射 | 久久午夜夜伦鲁鲁片无码免费 | 国产精品久久福利网站 | 妺妺窝人体色www婷婷 | 97精品国产97久久久久久免费 | 98国产精品综合一区二区三区 | 免费播放一区二区三区 | 欧美国产日韩亚洲中文 | 国产人妖乱国产精品人妖 | 中文字幕乱码亚洲无线三区 | 荡女精品导航 | 中文字幕av无码一区二区三区电影 | 国产精品久久久久久久影院 | 99麻豆久久久国产精品免费 | 无遮无挡爽爽免费视频 | 日产国产精品亚洲系列 | 免费观看黄网站 | 男人扒开女人内裤强吻桶进去 | 青草青草久热国产精品 | 人妻无码久久精品人妻 | 亚洲精品综合一区二区三区在线 | 樱花草在线社区www | 日韩亚洲欧美中文高清在线 | 澳门永久av免费网站 | v一区无码内射国产 | 欧美 日韩 人妻 高清 中文 | 中文字幕无码视频专区 | 人妻插b视频一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 精品无人区无码乱码毛片国产 | 丰满岳乱妇在线观看中字无码 | 精品成人av一区二区三区 | 精品成人av一区二区三区 | 国产另类ts人妖一区二区 | 精品午夜福利在线观看 | 强奷人妻日本中文字幕 | 人妻中文无码久热丝袜 | 国产国产精品人在线视 | 亚洲 激情 小说 另类 欧美 | 奇米影视7777久久精品 | 免费无码午夜福利片69 | 亚洲精品鲁一鲁一区二区三区 | 久久精品国产精品国产精品污 | 国产精品va在线播放 | 日韩av无码中文无码电影 | 欧美日韩一区二区三区自拍 | 亚洲男女内射在线播放 | 国产舌乚八伦偷品w中 | 熟妇激情内射com | 久久久无码中文字幕久... | 亚洲成色www久久网站 | 亚洲日本一区二区三区在线 | 一本久久a久久精品vr综合 | 无遮挡国产高潮视频免费观看 | 日韩无码专区 | 色综合天天综合狠狠爱 | 色情久久久av熟女人妻网站 | 成人精品视频一区二区 | 亚洲人亚洲人成电影网站色 | 国产69精品久久久久app下载 | 国内丰满熟女出轨videos | 人人超人人超碰超国产 | 中文字幕人妻无码一夲道 | 国产一区二区三区日韩精品 | 在线 国产 欧美 亚洲 天堂 | 东京热男人av天堂 | 亲嘴扒胸摸屁股激烈网站 | 久久熟妇人妻午夜寂寞影院 | 国内精品人妻无码久久久影院蜜桃 | 国产97色在线 | 免 | 国语自产偷拍精品视频偷 | 亚洲中文字幕在线观看 | 性欧美牲交在线视频 | 中文字幕+乱码+中文字幕一区 | 性啪啪chinese东北女人 | a在线亚洲男人的天堂 | 免费视频欧美无人区码 | 国模大胆一区二区三区 | 熟妇人妻无码xxx视频 | 人妻aⅴ无码一区二区三区 | 久久久久亚洲精品男人的天堂 | 亚洲日韩精品欧美一区二区 | 无码免费一区二区三区 | 国产激情艳情在线看视频 | 人人爽人人澡人人高潮 | 18黄暴禁片在线观看 | 天堂亚洲2017在线观看 | 水蜜桃色314在线观看 | 亚拍精品一区二区三区探花 | 人人超人人超碰超国产 | 欧洲精品码一区二区三区免费看 | 久久精品视频在线看15 | 大胆欧美熟妇xx | 国产无遮挡又黄又爽又色 | 中文字幕无线码 | 奇米影视7777久久精品 | 少妇性荡欲午夜性开放视频剧场 | 精品无码国产自产拍在线观看蜜 | 国产人妖乱国产精品人妖 | 久久精品成人欧美大片 | 天天爽夜夜爽夜夜爽 | 久久久久久av无码免费看大片 | 女人被男人爽到呻吟的视频 | 爽爽影院免费观看 | 亚洲精品中文字幕 | 亚洲一区二区三区香蕉 | 亚洲欧洲日本综合aⅴ在线 | 国内精品一区二区三区不卡 | 水蜜桃亚洲一二三四在线 | 成人影院yy111111在线观看 | √8天堂资源地址中文在线 | 久久99久久99精品中文字幕 | 黑人巨大精品欧美黑寡妇 | 国产精品久久久久无码av色戒 | 国产成人精品优优av | 日韩欧美中文字幕在线三区 | 欧美老妇交乱视频在线观看 | 131美女爱做视频 | 日韩精品无码免费一区二区三区 | 青青草原综合久久大伊人精品 | 色欲综合久久中文字幕网 | 粉嫩少妇内射浓精videos | 久久久久久久女国产乱让韩 | 欧美日本精品一区二区三区 | 免费视频欧美无人区码 | 国产精品人妻一区二区三区四 | 久久亚洲日韩精品一区二区三区 | 夜先锋av资源网站 | 麻豆国产丝袜白领秘书在线观看 | 国产精品-区区久久久狼 | 97人妻精品一区二区三区 | 97久久超碰中文字幕 | 中文字幕av无码一区二区三区电影 | 欧美国产亚洲日韩在线二区 | 少妇一晚三次一区二区三区 | 99久久久无码国产aaa精品 | 亚洲人成网站在线播放942 | 亚洲欧美综合区丁香五月小说 | 亚洲欧美日韩国产精品一区二区 | 国产熟女一区二区三区四区五区 | 国产精品美女久久久网av | 色情久久久av熟女人妻网站 | 亚洲综合在线一区二区三区 | 精品无人国产偷自产在线 | 国产又爽又猛又粗的视频a片 | 丝袜 中出 制服 人妻 美腿 | 精品偷自拍另类在线观看 | 日日摸天天摸爽爽狠狠97 | 国产激情一区二区三区 | 黑人玩弄人妻中文在线 | 狠狠色噜噜狠狠狠7777奇米 | 欧美日韩久久久精品a片 | 亚洲精品综合一区二区三区在线 | 一本色道久久综合狠狠躁 | 性开放的女人aaa片 | 最新国产麻豆aⅴ精品无码 | 午夜不卡av免费 一本久久a久久精品vr综合 | 人人妻人人澡人人爽欧美一区九九 | 成人无码精品一区二区三区 | 亚洲а∨天堂久久精品2021 | 丰满人妻一区二区三区免费视频 | 欧美人与禽猛交狂配 | 日韩人妻系列无码专区 | 久久久久久亚洲精品a片成人 | 久久精品国产精品国产精品污 | 免费乱码人妻系列无码专区 | 精品久久久无码中文字幕 | 亚洲色欲色欲天天天www | 午夜时刻免费入口 | 骚片av蜜桃精品一区 | 99riav国产精品视频 | 久久久精品成人免费观看 | 欧洲欧美人成视频在线 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲日本va中文字幕 | 亚洲国产一区二区三区在线观看 | 欧美zoozzooz性欧美 | 国产精品无码永久免费888 | 亚洲の无码国产の无码步美 | 国产成人午夜福利在线播放 | av人摸人人人澡人人超碰下载 | 亚洲国产午夜精品理论片 | 国产艳妇av在线观看果冻传媒 | 国精产品一区二区三区 | 国产亚洲人成a在线v网站 | 久久久久久av无码免费看大片 | 久9re热视频这里只有精品 | 亚洲aⅴ无码成人网站国产app | 亚洲欧洲无卡二区视頻 | 中文无码成人免费视频在线观看 | 成人av无码一区二区三区 | 国产9 9在线 | 中文 | 免费乱码人妻系列无码专区 | 亚洲中文字幕久久无码 | 久久国产精品精品国产色婷婷 | 高潮喷水的毛片 | 国产亲子乱弄免费视频 | 激情内射亚州一区二区三区爱妻 | 亚洲の无码国产の无码影院 | 国产国产精品人在线视 | 免费无码av一区二区 | 亚洲国产综合无码一区 | 内射欧美老妇wbb | 亚洲精品午夜国产va久久成人 | 亚洲日韩精品欧美一区二区 | 天堂无码人妻精品一区二区三区 | 爆乳一区二区三区无码 | 婷婷色婷婷开心五月四房播播 | 国产午夜精品一区二区三区嫩草 | 国产成人精品视频ⅴa片软件竹菊 | 色综合久久久久综合一本到桃花网 | 国产猛烈高潮尖叫视频免费 | 亚洲男人av香蕉爽爽爽爽 | 99久久人妻精品免费二区 | 国产又爽又黄又刺激的视频 | 99久久人妻精品免费一区 | 一个人免费观看的www视频 | 狠狠躁日日躁夜夜躁2020 | 免费无码肉片在线观看 | 久久精品人人做人人综合试看 | 一二三四在线观看免费视频 | 国产乡下妇女做爰 | 人妻少妇精品无码专区动漫 | 综合激情五月综合激情五月激情1 | 免费看男女做好爽好硬视频 | 久久精品国产亚洲精品 | 久久精品成人欧美大片 | 4hu四虎永久在线观看 | 久久久久久a亚洲欧洲av冫 | 国产熟妇另类久久久久 | 粉嫩少妇内射浓精videos | 国产av一区二区三区最新精品 | 国精品人妻无码一区二区三区蜜柚 | 在线播放亚洲第一字幕 | 色窝窝无码一区二区三区色欲 | 色情久久久av熟女人妻网站 | 狠狠亚洲超碰狼人久久 | 亚洲精品一区二区三区在线 | 亚洲一区二区三区播放 | 男女爱爱好爽视频免费看 | 亚洲成av人片天堂网无码】 | 色爱情人网站 | 亚洲精品中文字幕 | 超碰97人人做人人爱少妇 | 午夜精品久久久久久久 | 性欧美videos高清精品 | 亚洲精品国偷拍自产在线麻豆 | 成人综合网亚洲伊人 | 精品国产福利一区二区 | 亚洲天堂2017无码 | 两性色午夜视频免费播放 | 少妇被黑人到高潮喷出白浆 | 国产乱码精品一品二品 | 欧美高清在线精品一区 | 老熟妇仑乱视频一区二区 | 久久久久久亚洲精品a片成人 | 领导边摸边吃奶边做爽在线观看 | 国产又粗又硬又大爽黄老大爷视 | 久久精品丝袜高跟鞋 | 成人免费视频一区二区 | 无码精品人妻一区二区三区av | av香港经典三级级 在线 | 国产真实乱对白精彩久久 | 青青草原综合久久大伊人精品 | 精品国产aⅴ无码一区二区 | 天天躁夜夜躁狠狠是什么心态 | 欧美老熟妇乱xxxxx | v一区无码内射国产 | 久久精品国产日本波多野结衣 | 性欧美大战久久久久久久 | 夜精品a片一区二区三区无码白浆 | 人人妻人人澡人人爽欧美精品 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 精品国产青草久久久久福利 | 麻豆国产97在线 | 欧洲 | 99久久精品午夜一区二区 | 最近免费中文字幕中文高清百度 | 欧美日韩人成综合在线播放 | 久久伊人色av天堂九九小黄鸭 | 激情人妻另类人妻伦 | 亚洲人交乣女bbw | 中文字幕无码人妻少妇免费 | 国产精品久久国产精品99 | 欧美日韩一区二区三区自拍 | 国产人妻精品一区二区三区 | 任你躁国产自任一区二区三区 | 无码人妻久久一区二区三区不卡 | 成人精品视频一区二区三区尤物 | 中国大陆精品视频xxxx | 荡女精品导航 | 国产欧美精品一区二区三区 | 97色伦图片97综合影院 | 亚洲男人av香蕉爽爽爽爽 | 人妻互换免费中文字幕 | 俺去俺来也在线www色官网 | 日韩精品无码一本二本三本色 | 人妻与老人中文字幕 | 在线观看国产午夜福利片 | 免费观看又污又黄的网站 | 亚洲国产日韩a在线播放 | 天天综合网天天综合色 | 国精品人妻无码一区二区三区蜜柚 | 国产精品人妻一区二区三区四 | 熟妇人妻无码xxx视频 | 人妻无码久久精品人妻 | 欧美丰满老熟妇xxxxx性 | 夜夜影院未满十八勿进 | 亚洲第一网站男人都懂 | 国产偷国产偷精品高清尤物 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲色欲色欲天天天www | 中文字幕av伊人av无码av | 爆乳一区二区三区无码 | 天天燥日日燥 | 国产偷国产偷精品高清尤物 | 一本精品99久久精品77 | 欧美人妻一区二区三区 | 国产人妻人伦精品 | 精品久久久中文字幕人妻 | 奇米影视7777久久精品 | 欧美精品在线观看 | 中文精品无码中文字幕无码专区 | 97久久精品无码一区二区 | 少妇被黑人到高潮喷出白浆 | 在线a亚洲视频播放在线观看 | 人人爽人人澡人人人妻 | 亚欧洲精品在线视频免费观看 | 亚洲一区二区三区偷拍女厕 | 免费人成网站视频在线观看 | 国产97人人超碰caoprom | 亚洲成色www久久网站 | 无码毛片视频一区二区本码 | 波多野结衣乳巨码无在线观看 | 色噜噜亚洲男人的天堂 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久精品国产亚洲精品 | 国产精品高潮呻吟av久久 | 人妻互换免费中文字幕 | 蜜桃av抽搐高潮一区二区 | 爱做久久久久久 | 无套内射视频囯产 | 偷窥日本少妇撒尿chinese | 好屌草这里只有精品 | 两性色午夜视频免费播放 | 日产国产精品亚洲系列 | 国产激情一区二区三区 | 精品偷自拍另类在线观看 | 国产亚洲tv在线观看 | 清纯唯美经典一区二区 | 欧美激情内射喷水高潮 | 丰满肥臀大屁股熟妇激情视频 | 给我免费的视频在线观看 | 精品少妇爆乳无码av无码专区 | 娇妻被黑人粗大高潮白浆 | 国产午夜亚洲精品不卡下载 | 天天躁日日躁狠狠躁免费麻豆 | 色婷婷av一区二区三区之红樱桃 | 日韩在线不卡免费视频一区 | 日韩欧美中文字幕公布 | 成人亚洲精品久久久久 | 狠狠噜狠狠狠狠丁香五月 | 精品无码av一区二区三区 | 少妇被粗大的猛进出69影院 | 日本肉体xxxx裸交 | 久久精品国产精品国产精品污 | 国产女主播喷水视频在线观看 | 麻豆国产97在线 | 欧洲 | 国内丰满熟女出轨videos | 色狠狠av一区二区三区 | 老司机亚洲精品影院无码 | 亚洲人成无码网www | 夜夜躁日日躁狠狠久久av | 亚洲精品国产精品乱码视色 | 国产精品igao视频网 | 久久久久久a亚洲欧洲av冫 | 国产色精品久久人妻 | 亚洲一区二区三区香蕉 | 成人精品视频一区二区三区尤物 | 国产精品18久久久久久麻辣 | 九九久久精品国产免费看小说 | 色 综合 欧美 亚洲 国产 | 精品国产国产综合精品 | 老子影院午夜精品无码 | 国产乱人伦偷精品视频 | 玩弄中年熟妇正在播放 | 性啪啪chinese东北女人 | √8天堂资源地址中文在线 | 国产国产精品人在线视 | 狠狠cao日日穞夜夜穞av | 无码播放一区二区三区 | 亚洲国产精品毛片av不卡在线 | 国产成人无码av在线影院 | 无遮挡国产高潮视频免费观看 | 国产美女精品一区二区三区 | 精品一区二区不卡无码av | 国产精品久久久久久久影院 | 国产欧美精品一区二区三区 | 亚洲熟妇自偷自拍另类 | 野外少妇愉情中文字幕 | 成人免费视频在线观看 | 国产人妻人伦精品 | 内射欧美老妇wbb | 天堂在线观看www | 久久国语露脸国产精品电影 | 久久久久亚洲精品男人的天堂 | 成人无码精品1区2区3区免费看 | www国产亚洲精品久久网站 | 亚洲国产综合无码一区 | 天堂а√在线地址中文在线 | 久久精品国产大片免费观看 | 国产成人综合美国十次 | 高潮毛片无遮挡高清免费视频 | 午夜福利试看120秒体验区 | 国产午夜视频在线观看 | 人妻无码久久精品人妻 | 久久精品女人的天堂av | 欧美成人午夜精品久久久 | 日韩av无码中文无码电影 | 久久久久国色av免费观看性色 | 国产激情艳情在线看视频 | 亚洲无人区一区二区三区 | 男人和女人高潮免费网站 | 久久综合狠狠综合久久综合88 | 大色综合色综合网站 | 亚洲精品国偷拍自产在线观看蜜桃 | 无码成人精品区在线观看 | 国产精品18久久久久久麻辣 | 亚洲中文字幕av在天堂 | 人人爽人人澡人人人妻 | 老子影院午夜精品无码 | 久久zyz资源站无码中文动漫 | 狠狠色噜噜狠狠狠狠7777米奇 | 好屌草这里只有精品 | 国产精品永久免费视频 | 精品厕所偷拍各类美女tp嘘嘘 | 大肉大捧一进一出视频出来呀 | 亚洲男人av天堂午夜在 | 无码播放一区二区三区 | 九九综合va免费看 | 午夜熟女插插xx免费视频 | 一二三四社区在线中文视频 | 久久人人爽人人爽人人片ⅴ | 香港三级日本三级妇三级 | 亚洲国产精品无码一区二区三区 | 丰满少妇熟乱xxxxx视频 | 久久aⅴ免费观看 | 中文字幕中文有码在线 | 波多野结衣aⅴ在线 | 久久精品国产大片免费观看 | 国内综合精品午夜久久资源 | 亚洲成色在线综合网站 | 亚洲熟妇色xxxxx亚洲 | 国产精品久久久久久亚洲毛片 | 国产精品成人av在线观看 | 亚洲乱码国产乱码精品精 | 亚洲精品久久久久久一区二区 | 日欧一片内射va在线影院 | 小sao货水好多真紧h无码视频 | 精品久久久无码人妻字幂 | 在线天堂新版最新版在线8 | 精品国产成人一区二区三区 | 国产无遮挡又黄又爽又色 | 欧美日韩视频无码一区二区三 | 曰本女人与公拘交酡免费视频 | 色情久久久av熟女人妻网站 | 婷婷丁香五月天综合东京热 | 丰满少妇高潮惨叫视频 | 免费无码av一区二区 | 久久五月精品中文字幕 | 国产精品高潮呻吟av久久4虎 | 成人无码视频免费播放 | 亚洲国产成人a精品不卡在线 | 秋霞成人午夜鲁丝一区二区三区 | 国产香蕉97碰碰久久人人 | 亚洲伊人久久精品影院 | 老熟妇乱子伦牲交视频 | 亚洲色在线无码国产精品不卡 | 国产精品人妻一区二区三区四 | 国产精品嫩草久久久久 | 亚洲日本一区二区三区在线 | 亚洲欧美日韩国产精品一区二区 | 国内老熟妇对白xxxxhd | 99久久精品日本一区二区免费 | 欧美日韩一区二区综合 | 日韩精品久久久肉伦网站 | 强辱丰满人妻hd中文字幕 | 大肉大捧一进一出视频出来呀 | 久久人妻内射无码一区三区 | 国产精品a成v人在线播放 | 黑森林福利视频导航 | 亚洲中文字幕无码一久久区 | 粗大的内捧猛烈进出视频 | 亚洲综合另类小说色区 | 欧美一区二区三区视频在线观看 | 一个人免费观看的www视频 | 精品久久久无码中文字幕 | 亚拍精品一区二区三区探花 | 亚洲中文字幕在线无码一区二区 | 欧美 日韩 人妻 高清 中文 | 亚洲精品一区二区三区大桥未久 | 亚洲中文字幕在线观看 | 男女超爽视频免费播放 | 亚洲伊人久久精品影院 | 无码av免费一区二区三区试看 | 久久久久成人精品免费播放动漫 | 日本精品人妻无码免费大全 | 激情人妻另类人妻伦 | 一个人看的视频www在线 | 无遮挡国产高潮视频免费观看 | 国产免费观看黄av片 | 在教室伦流澡到高潮hnp视频 | 国产精品二区一区二区aⅴ污介绍 | 熟妇人妻中文av无码 | 欧洲精品码一区二区三区免费看 | 中文字幕色婷婷在线视频 | 国产乱人偷精品人妻a片 | 亚洲va中文字幕无码久久不卡 | 丝袜美腿亚洲一区二区 | 大地资源网第二页免费观看 | 特黄特色大片免费播放器图片 | 日韩人妻无码一区二区三区久久99 | 性开放的女人aaa片 | 国产激情无码一区二区 | 18禁止看的免费污网站 | 少妇无码av无码专区在线观看 | 日韩成人一区二区三区在线观看 | 国产真实乱对白精彩久久 | 精品无码一区二区三区的天堂 | 国产人妻精品一区二区三区不卡 | 在线天堂新版最新版在线8 | 色一情一乱一伦一视频免费看 | 亚洲人成网站在线播放942 | 久久精品国产99久久6动漫 | 欧美性生交xxxxx久久久 | 久久久久成人精品免费播放动漫 | 牲欲强的熟妇农村老妇女视频 | 少妇激情av一区二区 | 亚洲热妇无码av在线播放 | 青春草在线视频免费观看 | 欧美国产亚洲日韩在线二区 | 色综合天天综合狠狠爱 | 老熟女重囗味hdxx69 | 白嫩日本少妇做爰 | 强开小婷嫩苞又嫩又紧视频 | 亚洲成a人片在线观看无码3d | 国产熟妇高潮叫床视频播放 | 无遮挡国产高潮视频免费观看 | 婷婷综合久久中文字幕蜜桃三电影 | 国产色视频一区二区三区 | 久久精品国产一区二区三区肥胖 | 秋霞特色aa大片 | 中国女人内谢69xxxxxa片 | 日日摸天天摸爽爽狠狠97 | 亚洲a无码综合a国产av中文 | 丝袜人妻一区二区三区 | 久久综合给久久狠狠97色 | 六十路熟妇乱子伦 | 亚洲国产高清在线观看视频 | 欧美成人午夜精品久久久 | 国产精品久免费的黄网站 | 久久久久se色偷偷亚洲精品av | 少女韩国电视剧在线观看完整 | 日韩在线不卡免费视频一区 | 欧美午夜特黄aaaaaa片 | 牲交欧美兽交欧美 | 伊人色综合久久天天小片 | 麻豆国产丝袜白领秘书在线观看 | 亚洲国产精品一区二区第一页 | 台湾无码一区二区 | 99精品视频在线观看免费 | 国产精品久久久久久久9999 | 久久亚洲国产成人精品性色 | 欧美老人巨大xxxx做受 | 无码av中文字幕免费放 | 国产人妻精品一区二区三区不卡 | 国内综合精品午夜久久资源 | 亚洲一区二区三区在线观看网站 | 伊人久久大香线蕉午夜 | 亚洲精品综合五月久久小说 | 无码精品人妻一区二区三区av | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲熟悉妇女xxx妇女av | 2020久久香蕉国产线看观看 | 亚洲欧洲无卡二区视頻 | 欧美人与动性行为视频 | 欧美日韩在线亚洲综合国产人 | 日产国产精品亚洲系列 | 国产成人亚洲综合无码 | 日韩人妻少妇一区二区三区 | 国产精品va在线观看无码 | 国产精品久久福利网站 | 高清无码午夜福利视频 | 大地资源中文第3页 | 国产精品igao视频网 | 日本护士xxxxhd少妇 | 中文无码成人免费视频在线观看 | 激情综合激情五月俺也去 | 精品国产一区二区三区四区在线看 | 日韩精品无码一本二本三本色 | 国产色视频一区二区三区 | 久久久久亚洲精品男人的天堂 | 国产精品亚洲专区无码不卡 | 日本熟妇浓毛 | 精品一区二区三区无码免费视频 | 骚片av蜜桃精品一区 | 男女性色大片免费网站 | 在线成人www免费观看视频 | 国产性生交xxxxx无码 | 国产成人无码av片在线观看不卡 | 伊人久久大香线蕉亚洲 | 黑森林福利视频导航 | 国产特级毛片aaaaaa高潮流水 | 久久精品女人的天堂av | √天堂资源地址中文在线 | 日韩精品成人一区二区三区 | 亚洲国产精品成人久久蜜臀 | 午夜性刺激在线视频免费 | 狠狠综合久久久久综合网 | 亚洲精品一区三区三区在线观看 | 亚洲欧美综合区丁香五月小说 | 色五月五月丁香亚洲综合网 | 亚洲国产精品美女久久久久 | 久久精品视频在线看15 | 性色欲网站人妻丰满中文久久不卡 | 亚洲中文字幕无码中字 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲男人av香蕉爽爽爽爽 | 中文精品久久久久人妻不卡 | 午夜精品久久久久久久 | 亚洲熟妇色xxxxx欧美老妇 | 99久久精品日本一区二区免费 | 老太婆性杂交欧美肥老太 | 伊人久久婷婷五月综合97色 | 国产香蕉尹人综合在线观看 | 久久久精品国产sm最大网站 | 99久久人妻精品免费二区 | а√天堂www在线天堂小说 | a在线亚洲男人的天堂 | 麻豆国产人妻欲求不满谁演的 | 国产乡下妇女做爰 | 日本护士毛茸茸高潮 | 人妻少妇精品无码专区动漫 | 无码乱肉视频免费大全合集 | 久久精品女人的天堂av | 久久久成人毛片无码 | 98国产精品综合一区二区三区 | 黄网在线观看免费网站 | 欧美野外疯狂做受xxxx高潮 | 一本大道伊人av久久综合 | 色狠狠av一区二区三区 | 国产精品久久久久久亚洲毛片 | 亚洲午夜福利在线观看 | 激情人妻另类人妻伦 | 亚洲中文字幕在线无码一区二区 | 欧美日韩一区二区免费视频 | 性开放的女人aaa片 | 动漫av一区二区在线观看 | 日韩无套无码精品 | 高中生自慰www网站 | 久久人妻内射无码一区三区 | 在线亚洲高清揄拍自拍一品区 | 狠狠噜狠狠狠狠丁香五月 | 一本久道久久综合婷婷五月 | 夜夜影院未满十八勿进 | 俺去俺来也在线www色官网 | 无码国产激情在线观看 | 国产精品人妻一区二区三区四 | 永久免费精品精品永久-夜色 | 免费观看又污又黄的网站 | 亚洲 激情 小说 另类 欧美 | 久久久久se色偷偷亚洲精品av | a在线亚洲男人的天堂 | 美女扒开屁股让男人桶 | 台湾无码一区二区 | 色五月五月丁香亚洲综合网 | 欧美大屁股xxxxhd黑色 | 婷婷丁香五月天综合东京热 | 日产国产精品亚洲系列 | 中文亚洲成a人片在线观看 | 国产精品无码一区二区桃花视频 | 国产一区二区三区四区五区加勒比 | 97se亚洲精品一区 | 成人片黄网站色大片免费观看 | 中文字幕乱妇无码av在线 | 亚洲娇小与黑人巨大交 | 亚洲男人av天堂午夜在 | 午夜精品久久久内射近拍高清 | 亚洲 日韩 欧美 成人 在线观看 | 精品午夜福利在线观看 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产性生交xxxxx无码 | 精品人人妻人人澡人人爽人人 | 亚洲va欧美va天堂v国产综合 | 午夜精品久久久内射近拍高清 | 成人免费视频一区二区 | 中文字幕乱妇无码av在线 | 精品厕所偷拍各类美女tp嘘嘘 | 欧美黑人性暴力猛交喷水 | 玩弄中年熟妇正在播放 | 亚洲の无码国产の无码影院 | 亚洲一区二区三区偷拍女厕 | 又大又硬又爽免费视频 | 亚洲色欲久久久综合网东京热 | 性生交大片免费看l | 国产av无码专区亚洲awww | 青草视频在线播放 | 99久久久国产精品无码免费 | 人人爽人人爽人人片av亚洲 | 国产精品无套呻吟在线 | 兔费看少妇性l交大片免费 | 在线欧美精品一区二区三区 | 国内精品九九久久久精品 | 亚洲国产精品成人久久蜜臀 | 亚洲理论电影在线观看 | 六十路熟妇乱子伦 | 疯狂三人交性欧美 | 高清无码午夜福利视频 | 日产精品高潮呻吟av久久 | 日韩精品无码免费一区二区三区 | 久久久久久久久蜜桃 | 55夜色66夜色国产精品视频 | 精品人人妻人人澡人人爽人人 | 一个人免费观看的www视频 | 男人的天堂av网站 | 精品久久久无码人妻字幂 | 天堂а√在线地址中文在线 | 国产无套内射久久久国产 | 无码任你躁久久久久久久 | 色情久久久av熟女人妻网站 | 女人和拘做爰正片视频 | 无码av免费一区二区三区试看 | www国产亚洲精品久久久日本 | 成人欧美一区二区三区黑人免费 | 国产亚洲精品久久久久久国模美 | 免费视频欧美无人区码 | 色爱情人网站 | 久久综合狠狠综合久久综合88 | 2020最新国产自产精品 | 牛和人交xxxx欧美 | 亚洲中文字幕va福利 | 色 综合 欧美 亚洲 国产 | 露脸叫床粗话东北少妇 | 免费乱码人妻系列无码专区 | 内射后入在线观看一区 | 牲欲强的熟妇农村老妇女 | 国产精品久久久久久亚洲影视内衣 | 帮老师解开蕾丝奶罩吸乳网站 | 成人精品视频一区二区三区尤物 | 大屁股大乳丰满人妻 | 亚洲精品久久久久久一区二区 | 久久综合狠狠综合久久综合88 | 久久久久久a亚洲欧洲av冫 | 国产高清av在线播放 | 丰满人妻一区二区三区免费视频 | 在线精品亚洲一区二区 | 荫蒂添的好舒服视频囗交 | 亚洲aⅴ无码成人网站国产app | 亚洲精品综合一区二区三区在线 | 狂野欧美性猛交免费视频 | 丰满护士巨好爽好大乳 | 欧美日韩在线亚洲综合国产人 | 狠狠cao日日穞夜夜穞av | 国产麻豆精品精东影业av网站 | 麻豆果冻传媒2021精品传媒一区下载 | 97色伦图片97综合影院 | 精品 日韩 国产 欧美 视频 | 精品人妻av区 | 久久午夜夜伦鲁鲁片无码免费 | 无码人妻精品一区二区三区下载 | 亚洲 激情 小说 另类 欧美 | 精品一区二区三区波多野结衣 | 岛国片人妻三上悠亚 | 日本丰满护士爆乳xxxx | 国产激情无码一区二区app | 亚洲欧洲日本综合aⅴ在线 | 久久婷婷五月综合色国产香蕉 | 99久久久无码国产精品免费 | 无码国产乱人伦偷精品视频 | 国产成人无码专区 | 午夜熟女插插xx免费视频 | 国内丰满熟女出轨videos | 成人欧美一区二区三区黑人 | 激情国产av做激情国产爱 | 精品国产乱码久久久久乱码 | 久久伊人色av天堂九九小黄鸭 | 日本www一道久久久免费榴莲 | 久精品国产欧美亚洲色aⅴ大片 | 丰满少妇高潮惨叫视频 | 国产综合在线观看 | 亚洲毛片av日韩av无码 | 精品无码av一区二区三区 | 强辱丰满人妻hd中文字幕 | 玩弄少妇高潮ⅹxxxyw | 超碰97人人射妻 | 波多野结衣aⅴ在线 | 国产区女主播在线观看 | 夜夜躁日日躁狠狠久久av | 精品无人国产偷自产在线 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 强伦人妻一区二区三区视频18 | 在线观看免费人成视频 | 亚洲日韩av片在线观看 | 精品无码成人片一区二区98 | 国产成人精品必看 | 国产精品久久久久影院嫩草 | 久久亚洲精品成人无码 | 久久熟妇人妻午夜寂寞影院 | а天堂中文在线官网 | 无码中文字幕色专区 | 国产精品人妻一区二区三区四 | 思思久久99热只有频精品66 | 中文字幕日韩精品一区二区三区 | 在线天堂新版最新版在线8 | 高中生自慰www网站 | 99精品国产综合久久久久五月天 | 无码播放一区二区三区 | 九九综合va免费看 | 一本久道久久综合婷婷五月 | 亚洲精品中文字幕乱码 | 人妻少妇精品无码专区二区 | 中文亚洲成a人片在线观看 | 东京热无码av男人的天堂 | 亚洲综合精品香蕉久久网 | 性色欲网站人妻丰满中文久久不卡 | 欧美阿v高清资源不卡在线播放 | 国产香蕉97碰碰久久人人 | 又粗又大又硬毛片免费看 | 丝袜人妻一区二区三区 | 麻豆av传媒蜜桃天美传媒 | 老头边吃奶边弄进去呻吟 | 曰韩少妇内射免费播放 | 免费观看的无遮挡av | 亚洲精品国产a久久久久久 | 永久免费观看美女裸体的网站 | 精品国产青草久久久久福利 | 亚洲第一无码av无码专区 | 国产成人无码午夜视频在线观看 | 国产又爽又黄又刺激的视频 | 日本精品高清一区二区 | 国产无av码在线观看 | 亚洲gv猛男gv无码男同 | 亚洲欧美国产精品专区久久 | 99久久亚洲精品无码毛片 | 婷婷色婷婷开心五月四房播播 | 国产精品第一国产精品 | 麻豆人妻少妇精品无码专区 | 亚洲国产精品成人久久蜜臀 | 久久久久亚洲精品中文字幕 | 熟妇人妻无乱码中文字幕 | 无码av中文字幕免费放 | 日韩成人一区二区三区在线观看 | 国产亚洲精品久久久久久大师 | 亚洲精品一区二区三区大桥未久 | 1000部啪啪未满十八勿入下载 | 香港三级日本三级妇三级 | 日本一卡二卡不卡视频查询 | 3d动漫精品啪啪一区二区中 | 日本大香伊一区二区三区 | 亚洲色在线无码国产精品不卡 | 牛和人交xxxx欧美 | 少妇被粗大的猛进出69影院 | 久久婷婷五月综合色国产香蕉 | 国产亚洲精品精品国产亚洲综合 | 玩弄中年熟妇正在播放 | 99精品久久毛片a片 | 成人一在线视频日韩国产 | 日本一卡2卡3卡四卡精品网站 | 成人无码视频在线观看网站 | 强开小婷嫩苞又嫩又紧视频 | 东北女人啪啪对白 | 丰满肥臀大屁股熟妇激情视频 | 一本色道久久综合亚洲精品不卡 | 精品国产av色一区二区深夜久久 | 在线播放免费人成毛片乱码 | 亚洲一区二区三区国产精华液 | 国产亚洲精品精品国产亚洲综合 | 精品国产aⅴ无码一区二区 | 一本一道久久综合久久 | 国产精品久久久久久亚洲影视内衣 | 国产av一区二区三区最新精品 | 狠狠色色综合网站 | 熟妇女人妻丰满少妇中文字幕 | 亚洲国产一区二区三区在线观看 | 亚洲国产欧美日韩精品一区二区三区 | 久久久久国色av免费观看性色 | 精品国产一区二区三区四区 | 娇妻被黑人粗大高潮白浆 | 亚洲男女内射在线播放 | 中文字幕 亚洲精品 第1页 | 欧美日韩久久久精品a片 | 久久综合给合久久狠狠狠97色 | 扒开双腿疯狂进出爽爽爽视频 | 日韩精品久久久肉伦网站 | 一本久道久久综合狠狠爱 | 欧美成人高清在线播放 | 男女猛烈xx00免费视频试看 | 久久久无码中文字幕久... | 亚洲 激情 小说 另类 欧美 | 丰满肥臀大屁股熟妇激情视频 | 亚洲伊人久久精品影院 | 国产精品自产拍在线观看 | 久久午夜无码鲁丝片秋霞 | 强辱丰满人妻hd中文字幕 | 欧美xxxxx精品 | 亚洲精品中文字幕久久久久 | 丝袜人妻一区二区三区 | 久久天天躁夜夜躁狠狠 | 色婷婷综合激情综在线播放 | 亚洲国产av精品一区二区蜜芽 | 亚洲一区二区三区在线观看网站 | 亚洲码国产精品高潮在线 | 强奷人妻日本中文字幕 | 丁香花在线影院观看在线播放 | 2019午夜福利不卡片在线 | 麻豆精品国产精华精华液好用吗 | 久久久久久久久蜜桃 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 99国产精品白浆在线观看免费 | 亚洲中文字幕无码中字 | 中文字幕日产无线码一区 | 国产av一区二区三区最新精品 | 亚洲中文字幕乱码av波多ji | 亚洲日本在线电影 | 无码人妻少妇伦在线电影 | 国产精品福利视频导航 | 国产人妻人伦精品 | 国产成人亚洲综合无码 | 特黄特色大片免费播放器图片 | 成人试看120秒体验区 | 国产乱人无码伦av在线a | 国产三级精品三级男人的天堂 | 国产激情精品一区二区三区 | 色欲久久久天天天综合网精品 | 久久精品国产一区二区三区肥胖 | 在线а√天堂中文官网 | 99久久无码一区人妻 | 久久精品丝袜高跟鞋 | 久久精品无码一区二区三区 | 亚洲国产精品一区二区第一页 | 国产精品久久久av久久久 | 色婷婷综合中文久久一本 | 性啪啪chinese东北女人 | 国产一区二区三区精品视频 | 少妇性俱乐部纵欲狂欢电影 | 又黄又爽又色的视频 | 成人aaa片一区国产精品 | 欧洲欧美人成视频在线 | 国产av一区二区精品久久凹凸 | 亚洲自偷精品视频自拍 | 国产精品无码久久av | 国产亲子乱弄免费视频 | 大色综合色综合网站 | 国产超级va在线观看视频 | 97久久超碰中文字幕 | 亚洲熟妇色xxxxx欧美老妇 | 一本久道久久综合婷婷五月 | 亚洲日韩中文字幕在线播放 | 精品水蜜桃久久久久久久 | 亚洲成a人片在线观看日本 | 国产无套粉嫩白浆在线 | 漂亮人妻洗澡被公强 日日躁 | 欧美肥老太牲交大战 | 亚洲综合久久一区二区 | 狠狠色色综合网站 | 久久无码中文字幕免费影院蜜桃 | 国产午夜无码视频在线观看 | 久久久久久av无码免费看大片 | 未满小14洗澡无码视频网站 | 99精品久久毛片a片 | 人妻体内射精一区二区三四 | 四虎永久在线精品免费网址 | 台湾无码一区二区 | 在线天堂新版最新版在线8 | 中文字幕av日韩精品一区二区 | 日韩视频 中文字幕 视频一区 | 欧美 日韩 人妻 高清 中文 | 日本护士毛茸茸高潮 | 97夜夜澡人人双人人人喊 | 久久久久久a亚洲欧洲av冫 | 欧美精品国产综合久久 | 中文字幕无码热在线视频 | 伊人久久大香线蕉午夜 | 国产热a欧美热a在线视频 | 国产午夜福利100集发布 | 亚洲中文字幕无码中文字在线 | 久久久久成人精品免费播放动漫 | 2020久久超碰国产精品最新 | 国产午夜亚洲精品不卡 | 国产精品亚洲综合色区韩国 | 国产精品久久久久久久9999 | 亚洲一区av无码专区在线观看 | 亚洲人成网站免费播放 | 亚洲色欲色欲天天天www | 精品国产一区二区三区四区 | 人人妻人人澡人人爽人人精品 | www国产亚洲精品久久久日本 | 人人澡人摸人人添 | 日本饥渴人妻欲求不满 | 在线播放免费人成毛片乱码 | 国产亚洲精品久久久久久久久动漫 | 免费无码av一区二区 | 在线精品亚洲一区二区 | 中文无码成人免费视频在线观看 | 最新国产乱人伦偷精品免费网站 | 国产超碰人人爽人人做人人添 | 亚洲小说图区综合在线 | 国产精品久久久久9999小说 | 精品无人国产偷自产在线 | 又大又硬又爽免费视频 | 日韩精品无码一本二本三本色 | 色综合久久网 | 亚洲一区二区三区国产精华液 | 国产色xx群视频射精 | 人妻熟女一区 | 丝袜美腿亚洲一区二区 | 曰本女人与公拘交酡免费视频 | 国产性生交xxxxx无码 | 中文字幕乱码亚洲无线三区 | 亚洲精品www久久久 | 荡女精品导航 | 久久精品人妻少妇一区二区三区 | 欧美日韩综合一区二区三区 | 午夜精品久久久久久久久 | 久久久精品456亚洲影院 | 久久aⅴ免费观看 | 久久人妻内射无码一区三区 | 亚洲色偷偷偷综合网 | 狂野欧美性猛xxxx乱大交 | 久久综合狠狠综合久久综合88 | 国产亚洲精品久久久ai换 | 成年女人永久免费看片 | 色婷婷欧美在线播放内射 | 国产成人无码区免费内射一片色欲 | 国产午夜福利100集发布 | 久久精品国产99久久6动漫 | 亚洲综合久久一区二区 | 亚洲gv猛男gv无码男同 | 国产真实伦对白全集 | 亚洲中文字幕乱码av波多ji | 国产97人人超碰caoprom | 国产97色在线 | 免 | 日日干夜夜干 | 少妇无码吹潮 | 国产亚av手机在线观看 | 亚洲色在线无码国产精品不卡 | 国产尤物精品视频 | 国产人妻大战黑人第1集 | 俺去俺来也在线www色官网 | 成人av无码一区二区三区 | 国产手机在线αⅴ片无码观看 | 十八禁真人啪啪免费网站 | 中文字幕精品av一区二区五区 | 欧美真人作爱免费视频 | 色综合久久久久综合一本到桃花网 | 综合激情五月综合激情五月激情1 | 久久婷婷五月综合色国产香蕉 | 国产成人无码a区在线观看视频app | 精品一区二区三区无码免费视频 | 久久久久成人精品免费播放动漫 | 宝宝好涨水快流出来免费视频 | 亚洲の无码国产の无码步美 | 国产无套粉嫩白浆在线 | 亚洲人成无码网www | 中文字幕无码热在线视频 | 狠狠噜狠狠狠狠丁香五月 | 欧美一区二区三区视频在线观看 | 夜精品a片一区二区三区无码白浆 | 成人免费视频视频在线观看 免费 | 天堂а√在线地址中文在线 | 亚洲欧美日韩成人高清在线一区 | av香港经典三级级 在线 | 高清国产亚洲精品自在久久 | 亚洲爆乳大丰满无码专区 | 亚洲精品美女久久久久久久 | 99国产精品白浆在线观看免费 | 精品国产av色一区二区深夜久久 | 日韩亚洲欧美精品综合 | av无码电影一区二区三区 | 狠狠cao日日穞夜夜穞av | 一个人免费观看的www视频 | 美女毛片一区二区三区四区 | 国内精品久久毛片一区二区 | 国产精品办公室沙发 | 无人区乱码一区二区三区 | 久久久久久国产精品无码下载 | 亚洲一区二区三区四区 | 四虎永久在线精品免费网址 | 99视频精品全部免费免费观看 | 少妇愉情理伦片bd | 亚洲a无码综合a国产av中文 | 国产成人精品一区二区在线小狼 | 野外少妇愉情中文字幕 | 欧美 日韩 人妻 高清 中文 | 无码国内精品人妻少妇 | 成人欧美一区二区三区黑人 | 久久综合狠狠综合久久综合88 | 娇妻被黑人粗大高潮白浆 | 久久99国产综合精品 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 成人无码精品1区2区3区免费看 | 天海翼激烈高潮到腰振不止 | 成人无码视频在线观看网站 | 欧美丰满少妇xxxx性 | 久久99精品国产麻豆蜜芽 | 乱人伦中文视频在线观看 | 性生交片免费无码看人 | 无码国产乱人伦偷精品视频 | 久久精品99久久香蕉国产色戒 | 国产亚洲精品久久久久久大师 | 丝袜足控一区二区三区 | 久久精品视频在线看15 | 日本高清一区免费中文视频 | 无码免费一区二区三区 | 久久综合九色综合97网 | 亚洲国产成人a精品不卡在线 | 暴力强奷在线播放无码 | 精品国产aⅴ无码一区二区 | 国产精品va在线观看无码 | 天天爽夜夜爽夜夜爽 | 精品无码国产一区二区三区av | 国产精品国产自线拍免费软件 | 日韩在线不卡免费视频一区 | 国产精品无码永久免费888 | 国产乱人伦av在线无码 | 国产成人无码a区在线观看视频app | 久久天天躁夜夜躁狠狠 | 99国产精品白浆在线观看免费 | 亚洲国产av精品一区二区蜜芽 | 日韩人妻系列无码专区 | 99精品久久毛片a片 | 欧美一区二区三区视频在线观看 | 国产人妻精品一区二区三区 | 国产精品办公室沙发 | 亚洲综合色区中文字幕 | 国产精品久久国产精品99 | 日本熟妇人妻xxxxx人hd | 国内揄拍国内精品少妇国语 | 一本一道久久综合久久 | 亚洲国产精华液网站w | 一二三四在线观看免费视频 | 日本又色又爽又黄的a片18禁 | 中国女人内谢69xxxx | 国产真人无遮挡作爱免费视频 | 亚洲欧美精品伊人久久 | 午夜男女很黄的视频 | 欧美黑人乱大交 | 色综合视频一区二区三区 | 蜜臀aⅴ国产精品久久久国产老师 | 67194成是人免费无码 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产人妻大战黑人第1集 | av无码不卡在线观看免费 | 国内丰满熟女出轨videos | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲熟妇自偷自拍另类 | 少妇高潮喷潮久久久影院 | 伊人久久婷婷五月综合97色 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产在线精品一区二区三区直播 | 国产亚洲欧美在线专区 | 中文亚洲成a人片在线观看 | 久久无码人妻影院 | 欧美 丝袜 自拍 制服 另类 | 狠狠色欧美亚洲狠狠色www | 夫妻免费无码v看片 | 国内精品久久毛片一区二区 | 高清不卡一区二区三区 | 大地资源网第二页免费观看 | 99国产欧美久久久精品 | 乱中年女人伦av三区 | 国产三级久久久精品麻豆三级 | 九九久久精品国产免费看小说 | 粗大的内捧猛烈进出视频 | 又粗又大又硬毛片免费看 | 欧洲极品少妇 | 97人妻精品一区二区三区 | 亚洲狠狠色丁香婷婷综合 | 九一九色国产 | 激情五月综合色婷婷一区二区 | 无码成人精品区在线观看 | 毛片内射-百度 | 野外少妇愉情中文字幕 | 欧美丰满老熟妇xxxxx性 | 国内精品人妻无码久久久影院 | 日韩精品一区二区av在线 | 天天拍夜夜添久久精品 | 99在线 | 亚洲 | 婷婷五月综合缴情在线视频 | 无码av免费一区二区三区试看 | 精品aⅴ一区二区三区 | 无码国产乱人伦偷精品视频 | 青青草原综合久久大伊人精品 | 日本一本二本三区免费 | 国产片av国语在线观看 | 国产免费无码一区二区视频 | 欧美日韩在线亚洲综合国产人 | 爽爽影院免费观看 | 欧美日韩一区二区三区自拍 | 亚洲另类伦春色综合小说 | 国产色在线 | 国产 | 欧美老妇交乱视频在线观看 | 色妞www精品免费视频 | 人妻aⅴ无码一区二区三区 | 午夜精品久久久久久久久 | 久久综合久久自在自线精品自 | 性色欲情网站iwww九文堂 | 成人试看120秒体验区 | 成熟人妻av无码专区 | 亚洲国产欧美在线成人 | 日韩精品a片一区二区三区妖精 | 国产真实乱对白精彩久久 | 日日摸夜夜摸狠狠摸婷婷 | 国产精品欧美成人 | 久久综合九色综合欧美狠狠 | 俺去俺来也www色官网 | 大乳丰满人妻中文字幕日本 | 精品久久8x国产免费观看 | 成在人线av无码免费 | 亚洲综合无码一区二区三区 | 亚洲精品久久久久久久久久久 | 成人精品视频一区二区三区尤物 | 精品人妻人人做人人爽夜夜爽 | 青草视频在线播放 | 婷婷五月综合激情中文字幕 | 玩弄中年熟妇正在播放 | 久久国产精品二国产精品 | 国产精品久久久久9999小说 | 亚洲色www成人永久网址 | 色综合久久中文娱乐网 | 欧洲美熟女乱又伦 | 亚洲人交乣女bbw | 麻豆国产人妻欲求不满谁演的 | 欧美三级不卡在线观看 | 人妻尝试又大又粗久久 | 国产av无码专区亚洲awww | 丰满少妇女裸体bbw | 亚洲综合伊人久久大杳蕉 | 蜜桃无码一区二区三区 | 少妇被黑人到高潮喷出白浆 | 国产精品自产拍在线观看 | 国产精品亚洲综合色区韩国 | 久久久无码中文字幕久... | 在线成人www免费观看视频 | 嫩b人妻精品一区二区三区 | 麻豆md0077饥渴少妇 | 中国女人内谢69xxxx | 国产特级毛片aaaaaaa高清 | 亚洲精品一区二区三区在线 | 婷婷丁香五月天综合东京热 | 小泽玛莉亚一区二区视频在线 | 精品aⅴ一区二区三区 | 国产偷国产偷精品高清尤物 | 无码国产色欲xxxxx视频 | 中文字幕无码av激情不卡 | 福利一区二区三区视频在线观看 | 无码成人精品区在线观看 | 性生交大片免费看女人按摩摩 | 午夜精品久久久久久久 | 中国女人内谢69xxxx | av香港经典三级级 在线 | 中文字幕乱妇无码av在线 | 精品无码成人片一区二区98 | 亚洲一区av无码专区在线观看 | 国产精品久久国产精品99 | 亚洲午夜久久久影院 | 精品熟女少妇av免费观看 | 久久久久久国产精品无码下载 | 5858s亚洲色大成网站www | 久久国产精品二国产精品 | 玩弄中年熟妇正在播放 | 亚洲熟妇色xxxxx欧美老妇y | 久久久久成人片免费观看蜜芽 | 欧美老熟妇乱xxxxx | 亚洲国产欧美国产综合一区 | 综合激情五月综合激情五月激情1 | 国产莉萝无码av在线播放 | 亚洲色欲色欲欲www在线 | 精品国产精品久久一区免费式 | 亚洲精品一区二区三区四区五区 | 亚洲精品综合五月久久小说 | 中文字幕无线码 | 成人免费视频一区二区 | 中文字幕无线码 | 日日橹狠狠爱欧美视频 | 一本久道高清无码视频 | 欧美freesex黑人又粗又大 |