日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql 1280_技术分享 | MySQL 一次奇怪的故障分析

發布時間:2024/4/18 数据库 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 1280_技术分享 | MySQL 一次奇怪的故障分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、問題來源

這是一個朋友問我的典型案例。整個故障現象表現為,MySQL 數據庫頻繁的出現大量的請求不能響應。下面是一些他提供的證據:

1. show processlist從狀態信息來看出現如下情況:insert 操作:狀態為 update

update/delete 操作:狀態為 updating

select 操作:狀態為 sending data

因此可以推斷應該是語句執行期間出現了問題,由于篇幅原因只給出一部分,并且我將語句部分也做了相應截斷:show?processlist----------------------------......11827639????root????dbmis???Execute?9???updating????UPDATE17224594????root????dbmis???Execute?8???Sending?data????SELECT?sum(exchange_coin)?as?exchange_coin?FROM17224595????root????dbmis???Execute?8???update??INSERT?INTO17224596????root????dg??Execute?8???update??INSERT?INTO17224597????root????dbmis???Execute?8???update??INSERT?INTO17224598????root????dbmis???Execute?7???update??INSERT?INTO17224599????root????dbmis???Execute?7???Sending?data????SELECT?COUNT(*)?AS?tp_count?FROM17224600????root????dg??Execute?7???update??INSERT?INTO17224601????root????dbmis???Execute?6???update??INSERT?INTO17224602????root????dbmis???Execute?6???Sending?data????SELECT?sum(exchange_coin)?as?exchange_coin?FROM17224606????root????dbmis???Execute?5???update??INSERT?INTO17224619????root????dbmis???Execute?2???update??INSERT?INTO17224620????root????dbmis???Execute?2???update??INSERT?INTO17224621????root????dbmis???Execute?2???Sending?data????SELECT?sum(exchange_coin)?as?exchange_coin17224622????root????dg??Execute?2???update??INSERT?INTO17224623????root????dbmis???Execute?1???update??INSERT?INTO17224624????root????dbmis???Execute?1???update??INSERT?INTO17224625????root????dg??Execute?1???update??INSERT?INTO17224626????root????dbmis???Execute?0???update??INSERT?INTO

2. 系統 IO/CPU

從 vmstat 來看,CPU 使用不大,而 IO 也在可以接受的范圍內(vmstat wa% 不高且 b 列為 0 )如下:vmstat--------------------------------------

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r ?b ? swpd ? free ? buff ?cache ? si ? so ? ?bi ? ?bo ? in ? cs us sy id wa st

2 ?0 927300 3057100 ? ? ?0 53487316 ? ?0 ? ?0 ? ? 5 ? 192 ? ?0 ? ?0 ?3 ?1 96 ?0 ?0

iostat--------------------------------------

Linux 3.10.0-693.el7.x86_64 (fang-data1) ? ? 09/23/2019 ?_x86_64_ ? ?(32 CPU)

avg-cpu: ?%user ? %nice %system %iowait ?%steal ? %idle

2.72 ? ?0.00 ? ?0.52 ? ?0.45 ? ?0.00 ? 96.31

Device: ? ? ? ? rrqm/s ? wrqm/s ? ? r/s ? ? w/s ? ?rkB/s ? ?wkB/s avgrq-sz avgqu-sz ? await r_await w_await ?svctm ?%util

sdb ? ? ? ? ? ? ? 9.73 ? ?11.28 ? ?3.93 ?264.54 ? 415.23 ?2624.20 ? ?22.64 ? ? 0.25 ? ?0.93 ? ?3.25 ? ?0.90 ? 0.80 ?21.61

sda ? ? ? ? ? ? ?10.13 ? ?11.59 ? ?6.34 ?264.22 ? 450.68 ?2624.20 ? ?22.73 ? ? 0.01 ? ?0.05 ? ?2.55 ? ?1.00 ? 0.93 ?25.19

sdc ? ? ? ? ? ? ?11.60 ? ?11.36 ? ?5.03 ?263.12 ? 453.02 ?2592.44 ? ?22.71 ? ? 0.17 ? ?0.62 ? ?5.08 ? ?0.53 ? 0.81 ?21.60

sde ? ? ? ? ? ? ? 0.01 ? ? 0.10 ? ?0.11 ?160.45 ? ? 6.69 ? 920.23 ? ?11.55 ? ? 0.16 ? ?1.01 ? ?1.80 ? ?1.01 ? 0.83 ?13.32

sdd ? ? ? ? ? ? ?11.26 ? ?11.30 ? ?2.23 ?263.18 ? 412.90 ?2592.44 ? ?22.65 ? ? 0.17 ? ?0.65 ? 10.37 ? ?0.56 ? 0.82 ?21.78

md126 ? ? ? ? ? ? 0.00 ? ? 0.00 ? 11.30 ?468.80 ? 164.79 ?5216.64 ? ?22.42 ? ? 0.00 ? ?0.00 ? ?0.00 ? ?0.00 ? 0.00 ? 0.00

dm-0 ? ? ? ? ? ? ?0.00 ? ? 0.00 ? ?0.11 ? 58.80 ? ? 6.69 ? 920.23 ? ?31.47 ? ? 0.15 ? ?2.56 ? ?1.96 ? ?2.56 ? 2.16 ?12.74

dm-1 ? ? ? ? ? ? ?0.00 ? ? 0.00 ? ?0.06 ? ?0.08 ? ? 0.24 ? ? 0.31 ? ? 8.00 ? ? 0.01 ? 41.80 ? ?1.20 ? 72.78 ? 0.83 ? 0.01

dm-2 ? ? ? ? ? ? ?0.00 ? ? 0.00 ? 11.24 ?408.66 ? 164.55 ?5216.33 ? ?25.63 ? ? 0.14 ? ?0.32 ? ?1.02 ? ?0.30 ? 0.46 ?19.29

這就比較奇怪了,一般來說數據庫不能及時響應請求很大可能是由于系統負載過高。如果說 DML 還可能是 Innodb 鎖造成的堵塞,但是大量 sending data 狀態下的 select 操作一般可能都和系統負載過高有聯系,但是這里系統負載還在可以接受的范圍內。

二、pstack 分析借助 pstack 查看線程的棧幀,查看 pstack 發現如下(由于篇幅限制只給出部分說明問題的部分):

1. insert 線程:Thread?85?(Thread?0x7fbb0d42b700?(LWP?20174)):#0??0x00007fbfae164c73?in?select?()?from?/lib64/libc.so.6#1??0x0000000000987c0f?in?os_thread_sleep?(tm=)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/os/os0thread.cc:287#2??0x00000000009e4dea?in?srv_conc_enter_innodb_with_atomics?(trx=trx@entry=0x7fba4802f9c8)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/srv/srv0conc.cc:276#3??srv_conc_enter_innodb?(trx=trx@entry=0x7fba4802f9c8)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/srv/srv0conc.cc:511#4??0x000000000093b948?in?innobase_srv_conc_enter_innodb?(trx=0x7fba4802f9c8)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/handler/ha_innodb.cc:1280#5??ha_innobase::write_row?(this=0x7fb8440ab260,?record=0x7fb8440ab650?"")?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/handler/ha_innodb.cc:6793#6??0x00000000005b440f?in?handler::ha_write_row?(this=0x7fb8440ab260,?buf=0x7fb8440ab650?"")?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/handler.cc:7351#7??0x00000000006dd3a8?in?write_record?(thd=thd@entry=0x1d396c90,?table=table@entry=0x7fb8440aa970,?info=info@entry=0x7fbb0d429400,?update=update@entry=0x7fbb0d429480)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/sql_insert.cc:1667#8??0x00000000006e2541?in?mysql_insert?(thd=thd@entry=0x1d396c90,?table_list=,?fields=...,?values_list=...,?update_fields=...,?update_values=...,?duplic=DUP_REPLACE,?ignore=false)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/sql_insert.cc:1072#9??0x00000000006fa90a?in?mysql_execute_command?(thd=thd@entry=0x1d396c90)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/sql_parse.cc:3500

2. update 線程Thread?81?(Thread?0x7fbb24b67700?(LWP?27490)):#0??0x00007fbfae164c73?in?select?()?from?/lib64/libc.so.6#1??0x0000000000987c0f?in?os_thread_sleep?(tm=)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/os/os0thread.cc:287#2??0x00000000009e4dea?in?srv_conc_enter_innodb_with_atomics?(trx=trx@entry=0x7fb94003c608)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/srv/srv0conc.cc:276#3??srv_conc_enter_innodb?(trx=trx@entry=0x7fb94003c608)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/srv/srv0conc.cc:511#4??0x000000000093ae4e?in?innobase_srv_conc_enter_innodb?(trx=0x7fb94003c608)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/handler/ha_innodb.cc:1280#5??ha_innobase::index_read?(this=0x7fb95c05b540,?buf=0x7fb95c2ae4f0?"\377\377\377",?key_ptr=,?key_len=,?find_flag=)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/handler/ha_innodb.cc:7675#6??0x00000000005ab6e0?in?ha_index_read_map?(find_flag=HA_READ_KEY_EXACT,?keypart_map=3,?key=0x7fb940017048?"7\307\017e\257h",?buf=,?this=0x7fb95c05b540)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/handler.cc:2753#7??handler::read_range_first?(this=0x7fb95c05b540,?start_key=,?end_key=,?eq_range_arg=,?sorted=)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/handler.cc:6717#8??0x00000000005aa206?in?handler::multi_range_read_next?(this=0x7fb95c05b540,?range_info=0x7fbb24b65240)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/handler.cc:5871#9??0x0000000000804acb?in?QUICK_RANGE_SELECT::get_next?(this=0x7fb94000f720)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/opt_range.cc:10644#10?0x000000000082ae2d?in?rr_quick?(info=0x7fbb24b65410)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/records.cc:369#11?0x0000000000766e1b?in?mysql_update?(thd=thd@entry=0x1d1f2250,?table_list=,?fields=...,?values=...,?conds=0x7fb9400009c8,?order_num=,?order=,?limit=18446744073709551615,?handle_duplicates=DUP_ERROR,?ignore=false,?found_return=found_return@entry=0x7fbb24b65800,?updated_return=updated_return@entry=0x7fbb24b65d60)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/sql_update.cc:744

3. select 線程Thread?66?(Thread?0x7fbb3c355700?(LWP?16028)):#0??0x00007fbfae164c73?in?select?()?from?/lib64/libc.so.6#1??0x0000000000987c0f?in?os_thread_sleep?(tm=)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/os/os0thread.cc:287#2??0x00000000009e4dea?in?srv_conc_enter_innodb_with_atomics?(trx=trx@entry=0x7fb988354858)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/srv/srv0conc.cc:276#3??srv_conc_enter_innodb?(trx=trx@entry=0x7fb988354858)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/srv/srv0conc.cc:511#4??0x000000000093ae4e?in?innobase_srv_conc_enter_innodb?(trx=0x7fb988354858)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/handler/ha_innodb.cc:1280#5??ha_innobase::index_read?(this=0x7fb9880e33a0,?buf=0x7fb988351b50?"\377\377\377\377",?key_ptr=,?key_len=,?find_flag=)?at?/home/install/lnmp1.5/src/mysql-5.6.40/storage/innobase/handler/ha_innodb.cc:7675#6??0x00000000005ab6e0?in?ha_index_read_map?(find_flag=HA_READ_AFTER_KEY,?keypart_map=7,?key=0x7fb988134a48?"",?buf=,?this=0x7fb9880e33a0)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/handler.cc:2753#7??handler::read_range_first?(this=0x7fb9880e33a0,?start_key=,?end_key=,?eq_range_arg=,?sorted=)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/handler.cc:6717#8??0x00000000005aa206?in?handler::multi_range_read_next?(this=0x7fb9880e33a0,?range_info=0x7fbb3c353400)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/handler.cc:5871#9??0x0000000000804acb?in?QUICK_RANGE_SELECT::get_next?(this=0x7fb988002050)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/opt_range.cc:10644#10?0x000000000082ae2d?in?rr_quick?(info=0x7fb98809c210)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/records.cc:369#11?0x00000000006d44fd?in?sub_select?(join=0x7fb98809a728,?join_tab=0x7fb98809c180,?end_of_records=)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/sql_executor.cc:1259#12?0x00000000006d2823?in?do_select?(join=0x7fb98809a728)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/sql_executor.cc:936#13?JOIN::exec?(this=0x7fb98809a728)?at?/home/install/lnmp1.5/src/mysql-5.6.40/sql/sql_executor.cc:194

好了有了這些棧幀視乎發現一些共同點他們都處于 innobase_srv_conc_enter_innodb 函數下,本函數正是下面參數實現的方式:innodb_thread_concurrency

innodb_concurrency_tickets

所以我隨即告訴他檢查這兩個參數,如果設置了可以嘗試取消。過后數據庫故障得到解決。

三、參數和相關說明實際上涉及到的參數主要是 innodb_thread_concurrency 和 innodb_concurrency_tickets。將高壓力下線程之間搶占 CPU 而造成線程上下文切換的情況盡量阻塞在 Innodb 層之外,這就需要 innodb_thread_concurrency 參數了。同時又要保證對于那些(長時間處理線程)不會長時間的堵塞(短時間處理線程),比如某些 select 操作需要查詢很久,而某些 select 操作查詢量很小,如果等待(長時間的 select 操作)結束后(短時間 select 操作)才執行,那么顯然會出現(短時間 select 操作)饑餓問題,換句話說對(短時間 select 操作)是不公平的, 因此就引入了 innodb_concurrency_tickets 參數。

1. innodb_thread_concurrency

同一時刻能夠進入 Innodb 層的會話(線程)數。如果在 Innodb 層干活的會話(線程)數量超過這個參數的設置,新會話(線程)將不能從 MySQL 層進入到 Innodb 層,它們將進入一個短暫的睡眠狀態。休眠多久則通過參數 innodb_thread_sleep_delay 參數指定,如果還設置了參數 innodb_adaptive_max_sleep_delay 那么 Innodb 將會自動調整休眠時間,具體的算法實際上就在 srv_conc_enter_innodb_with_atomics 函數中,感興趣的可以執行查看。其次這種休眠實際上是一個定時醒來的時鐘,通過 ::nanosleep 或者 select(多路 IO 轉接函數)進行實現,定時喚醒后會話(線程)重新判斷是否可以進入 Innodb 層。函數 os_thread_sleep 部分如下:#elif defined(HAVE_NANOSLEEP)

struct timespec t;

t.tv_sec = tm / 1000000;

t.tv_nsec = (tm % 1000000) * 1000;

::nanosleep(&t, NULL);

#else

struct timeval ?t;

t.tv_sec = tm / 1000000;

t.tv_usec = tm % 1000000;

select(0, NULL, NULL, NULL, &t);

關于到底如何設置這個值,官方文檔有如下建議:Use?the?following?guidelines?to?help?find?and?maintain?an?appropriate?setting:-?If?the?number?of?concurrent?user?threads?for?a?workload?is?less?than?64,?setinnodb_thread_concurrency=0.-?If?your?workload?is?consistently?heavy?or?occasionally?spikes,?start?by?settinginnodb_thread_concurrency=128?and?then?lowering?the?value?to?96,?80,?64,?and?so?on,?untilyou?find?the?number?of?threads?that?provides?the?best?performance.?For?example,?suppose?yoursystem?typically?has?40?to?50?users,?but?periodically?the?number?increases?to?60,?70,?or?even?200.You?find?that?performance?is?stable?at?80?concurrent?users?but?starts?to?show?a?regression?abovethis?number.?In?this?case,?you?would?set?innodb_thread_concurrency=80?to?avoid?impactingperformance.-?If?you?do?not?want?InnoDB?to?use?more?than?a?certain?number?of?virtual?CPUs?for?user?threads(20?virtual?CPUs,?for?example),?set?innodb_thread_concurrency?to?this?number?(or?possiblylower,?depending?on?performance?results).?If?your?goal?is?to?isolate?MySQL?from?other?applications,you?may?consider?binding?the?mysqld?process?exclusively?to?the?virtual?CPUs.?Be?aware,however,?that?exclusive?binding?could?result?in?non-optimal?hardware?usage?if?the?mysqld?processis?not?consistently?busy.?In?this?case,?you?might?bind?the?mysqld?process?to?the?virtual?CPUs?butalso?allow?other?applications?to?use?some?or?all?of?the?virtual?CPUs.-?innodb_thread_concurrency?values?that?are?too?high?can?cause?performance?regression?dueto?increased?contention?on?system?internals?and?resources.-?In?some?cases,?the?optimal?innodb_thread_concurrency?setting?can?be?smaller?than?thenumber?of?virtual?CPUs.-?Monitor?and?analyze?your?system?regularly.?Changes?to?workload,?number?of?users,?or?computingenvironment?may?require?that?you?adjust?the?innodb_thread_concurrency?setting

可以發現要合理的設置這個值并不那么容易并且要求較高。

2. innodb_concurrency_tickets實際上這里的 tickets 可以理解為 MySQL 層和 Innodb 層交互的次數,比如一個 select 一條數據就是需要 Innodb 層返回一條數據然后 MySQL 層進行 where 條件的過濾然后返回給客戶端,拋開 where 條件過濾的情況,如果我們一條語句需要查詢 100 條數據,那么實際上需要進入 Innodb 層 100 次,那么實際上消耗的 tickets 就是 100。當然對于 insert select 這種操作,需要的 tickets 是普通 select 的兩倍,因為查詢需要進入 Innodb 層一次,insert 需要再次進入 Innodb 層一次,后面我們就使用 insert select 的方式來模擬堵塞的情況,最后還會給出說明。這樣我們也就理解為什么 innodb_concurrency_tickets 可以避免(長時間處理線程)長時間堵塞(短時間處理線程)的原因了。假設 innodb_concurrency_tickets 為 5000(默認值),有一個需要查詢 100W 行數據的大 select 操作和一個需要查詢 100 行數據的小 select 操作,大 select 操作先進行,但是當查詢了 5000 行數據后將丟失CPU使用權,小 select 操作將會進行并且一次性完成。最后關于這里涉及的參數可以繼續參考官方文檔中的說明,我們線上并沒有設置這些參數,因為感覺很難設置合適,如果設置不當反而會遇到問題,就如本案例一樣。

3. 事務操作狀態

實際上如果是處于這種堵塞情況,我們完全可以在 information_schema.innodb_trx 和 show engine innodb status 中看到如下:---TRANSACTION 162307, ACTIVE 133 sec sleeping before entering InnoDB (這里)

mysql tables in use 2, locked 2

767 lock struct(s), heap size 106968, 212591 row lock(s), undo log entries 15451

MySQL thread id 14, OS thread handle 140736751912704, query id 1077 localhost root Sending data

insert into testui select * from testui

---TRANSACTION 162302, ACTIVE 320 sec, thread declared inside InnoDB 1

mysql tables in use 2, locked 2

2477 lock struct(s), heap size 336344, 609049 row lock(s), undo log entries 83582

MySQL thread id 13, OS thread handle 140737153779456, query id 1050 localhost root Sending data

insert into testti3 select * from testti3

mysql> select trx_id,trx_state,trx_query,trx_operation_state,trx_concurrency_tickets from information_schema.innodb_trx \G

*************************** 1. row ***************************

trx_id: 84325

trx_state: RUNNING

trx_query: insert into ?baguait4 select * from testgp

trx_operation_state: sleeping before entering InnoDB(這里)

trx_concurrency_tickets: 0

*************************** 2. row ***************************

trx_id: 84319

trx_state: RUNNING

trx_query: insert into ?baguait3 select * from testgp

trx_operation_state: sleeping before entering InnoDB

trx_concurrency_tickets: 0

我們可以看到事務操作狀態被標記為sleeping before entering InnoDB。但是需要注意一點的是對于只讀事務比如 select 操作而言,show engine innodb status 可能看不到。但是遺憾的是案例中朋友并沒有采集 trx_operation_state 的值。

四、模擬測試這里我們簡單模擬,我們一共啟用3個事務,其中兩個 insert select 操作,一個單純的 select 操作,當然這里的都是耗時操作,涉及的表每個表都有大概 100W 的數據。

同時為了方便觀察我們需要設置參數:innodb_thread_concurrency=1

innodb_concurrency_tickets=10

操作步驟如下:

如果多觀察幾次你可以看到如下的現象:mysql> select trx_id,trx_state,trx_query,trx_operation_state,trx_concurrency_tickets from information_schema.innodb_trx \G show processlist;

*************************** 1. row ***************************

trx_id: 84529

trx_state: RUNNING

trx_query: insert into ?baguait4 select * from testgp

trx_operation_state: sleeping before entering InnoDB

trx_concurrency_tickets: 0

*************************** 2. row ***************************

trx_id: 84524

trx_state: RUNNING

trx_query: insert into ?baguait3 select * from testgp

trx_operation_state: inserting

trx_concurrency_tickets: 1

*************************** 3. row ***************************

trx_id: 422211785606640

trx_state: RUNNING

trx_query: select * from baguait1

trx_operation_state: sleeping before entering InnoDB

trx_concurrency_tickets: 0

3 rows in set (0.00 sec)

+----+-----------------+-----------+---------+---------+------+------------------------+--------------------------------------------+-----------+---------------+

| Id | User ? ? ? ? ? ?| Host ? ? ?| db ? ? ?| Command | Time | State ? ? ? ? ? ? ? ? ?| Info ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | Rows_sent | Rows_examined |

+----+-----------------+-----------+---------+---------+------+------------------------+--------------------------------------------+-----------+---------------+

| ?1 | event_scheduler | localhost | NULL ? ?| Daemon ?| 3173 | Waiting on empty queue | NULL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? 0 | ? ? ? ? ? ? 0 |

| ?6 | root ? ? ? ? ? ?| localhost | testmts | Query ? | ? 70 | Sending data ? ? ? ? ? | insert into ?baguait3 select * from testgp | ? ? ? ? 0 | ? ? ? ? ? ? 0 |

| ?7 | root ? ? ? ? ? ?| localhost | testmts | Query ? | ? 68 | Sending data ? ? ? ? ? | insert into ?baguait4 select * from testgp | ? ? ? ? 0 | ? ? ? ? ? ? 0 |

| ?8 | root ? ? ? ? ? ?| localhost | testmts | Query ? | ? 66 | Sending data ? ? ? ? ? | select * from baguait1 ? ? ? ? ? ? ? ? ? ? | ? ?120835 | ? ? ? ? ? ? 0 |

| ?9 | root ? ? ? ? ? ?| localhost | NULL ? ?| Query ? | ? ?0 | starting ? ? ? ? ? ? ? | show processlist ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? 0 | ? ? ? ? ? ? 0 |

+----+-----------------+-----------+---------+---------+------+------------------------+--------------------------------------------+-----------+---------------+

5 rows in set (0.00 sec)

mysql>

mysql>

mysql>

mysql>

mysql> select trx_id,trx_state,trx_query,trx_operation_state,trx_concurrency_tickets from information_schema.innodb_trx \G show processlist;

*************************** 1. row ***************************

trx_id: 84529

trx_state: RUNNING

trx_query: insert into ?baguait4 select * from testgp

trx_operation_state: sleeping before entering InnoDB

trx_concurrency_tickets: 0

*************************** 2. row ***************************

trx_id: 84524

trx_state: RUNNING

trx_query: insert into ?baguait3 select * from testgp

trx_operation_state: sleeping before entering InnoDB

trx_concurrency_tickets: 0

*************************** 3. row ***************************

trx_id: 422211785606640

trx_state: RUNNING

trx_query: select * from baguait1

trx_operation_state: fetching rows

trx_concurrency_tickets: 3

3 rows in set (0.00 sec)

+----+-----------------+-----------+---------+---------+------+------------------------+--------------------------------------------+-----------+---------------+

| Id | User ? ? ? ? ? ?| Host ? ? ?| db ? ? ?| Command | Time | State ? ? ? ? ? ? ? ? ?| Info ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | Rows_sent | Rows_examined |

+----+-----------------+-----------+---------+---------+------+------------------------+--------------------------------------------+-----------+---------------+

| ?1 | event_scheduler | localhost | NULL ? ?| Daemon ?| 3177 | Waiting on empty queue | NULL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? 0 | ? ? ? ? ? ? 0 |

| ?6 | root ? ? ? ? ? ?| localhost | testmts | Query ? | ? 74 | Sending data ? ? ? ? ? | insert into ?baguait3 select * from testgp | ? ? ? ? 0 | ? ? ? ? ? ? 0 |

| ?7 | root ? ? ? ? ? ?| localhost | testmts | Query ? | ? 72 | Sending data ? ? ? ? ? | insert into ?baguait4 select * from testgp | ? ? ? ? 0 | ? ? ? ? ? ? 0 |

| ?8 | root ? ? ? ? ? ?| localhost | testmts | Query ? | ? 70 | Sending data ? ? ? ? ? | select * from baguait1 ? ? ? ? ? ? ? ? ? ? | ? ?128718 | ? ? ? ? ? ? 0 |

| ?9 | root ? ? ? ? ? ?| localhost | NULL ? ?| Query ? | ? ?0 | starting ? ? ? ? ? ? ? | show processlist ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? 0 | ? ? ? ? ? ? 0 |

+----+-----------------+-----------+---------+---------+------+------------------------+--------------------------------------------+-----------+---------------+

5 rows in set (0.00 sec)

我們可以觀察到 trx_operation_state 的狀態 3 個操作都在交替的變化,但是總有 2 個處于sleeping before entering InnoDB狀態。并且我們可以觀察到 trx_concurrency_tickets 總是不會大于 10 的。因此我們有理由相信在同一時刻只有一個操作進入了 Innodb 層。但是需要注意的是在 show engine innodb status 中觀察不到 select 的操作如下:------------TRANSACTIONS------------Trx?id?counter?84538Purge?done?for?trx's?n:o?=?84529,?sees?=?84524,?sees?

但是我們還需要注意 show engine innodb status 有如下輸出第一行說明了有 2 個會話(線程)堵塞在 Innodb 層以外。--------------ROW?OPERATIONS--------------1?queries?inside?InnoDB,?2?queries?in?queue3?read?views?open?inside?InnoDB2?RW?transactions?active?inside?InnoDB

五、實現方法前面我們已經描述了每次 MySQL 層和 Innodb 層的交互都會進行一次這樣的判斷,它用來決定會話(線程)是否能夠進入 Innodb 層,下面就是大概的邏輯,由函數 innobase_srv_conc_enter_innodb 調入。->是否設置了參數innodb_thread_concurrency??->是?????->是否tickets大于0????????->是、直接進入Innodb層并且tickets減1????????->否、調入函數srv_conc_enter_innodb???????????->調入函數srv_conc_enter_innodb_with_atomics??????????????->開啟死循環?????????????????->是否活躍線程數小于innodb_thread_concurrency設置????????????????????->是、增加活躍線程數,并且自動調整delay參數,退出死循環,滿tickets進入Innodb層????????????????????->否、自動調整delay參數后設置事務操作狀態為"sleeping?before?entering?InnoDB",然后進入休眠狀態直到時間達到后重新醒來繼續循環??->否、直接進入Innodb層

我們可以看到這個實現方式,在 Inndob 以外的會話(線程)會一直等待直到 Inndob 層內活躍的線程數小于 innodb_thread_concurrency 為止,并且每次進入 Innodb 層都會將 tickets 減 1。

其他:關于 insert select 操作消耗 tickets 的說明這里額外說明一下,因為我在測試的時候看了一下,對于一行數據而言首先需要 select 查詢出來然后再 insert 插入到表中,這里實際上一行數據涉及到進入 Innodb 層兩次,那么就需要消耗 2 個 tickets,下面留下兩個棧幀供自己后面參考:

1. insert select 查詢數據進入 Innodb 層#0??innobase_srv_conc_enter_innodb?(prebuilt=0x7ffedcb98d10)?at?/mysqldata/percona-server-locks-detail-5.7.22/storage/innobase/handler/ha_innodb.cc:1740#1??0x0000000001a53f7c?in?ha_innobase::general_fetch?(this=0x7ffedcb9d760,?buf=0x7ffedc9469b0?"\375\n",?direction=1,?match_mode=0)????at?/mysqldata/percona-server-locks-detail-5.7.22/storage/innobase/handler/ha_innodb.cc:9846#2??0x0000000001a545ee?in?ha_innobase::rnd_next?(this=0x7ffedcb9d760,?buf=0x7ffedc9469b0?"\375\n")????at?/mysqldata/percona-server-locks-detail-5.7.22/storage/innobase/handler/ha_innodb.cc:10083#3??0x0000000000f836d6?in?handler::ha_rnd_next?(this=0x7ffedcb9d760,?buf=0x7ffedc9469b0?"\375\n")?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/handler.cc:3146#4??0x00000000014e2a55?in?rr_sequential?(info=0x7ffedcb4f120)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/records.cc:521#5??0x0000000001581277?in?sub_select?(join=0x7ffedcb4ea20,?qep_tab=0x7ffedcb4f0d0,?end_of_records=false)????at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:1280#6??0x0000000001580be6?in?do_select?(join=0x7ffedcb4ea20)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:950#7??0x000000000157eaa2?in?JOIN::exec?(this=0x7ffedcb4ea20)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:199#8??0x0000000001620327?in?handle_query?(thd=0x7ffedc012960,?lex=0x7ffedc014f90,?result=0x7ffedcc46680,?added_options=1342177280,?removed_options=0)????at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_select.cc:185#9??0x000000000180466d?in?Sql_cmd_insert_select::execute?(this=0x7ffedcc46608,?thd=0x7ffedc012960)

2. insert select 插入數據進入 Innodb 層#0??innobase_srv_conc_enter_innodb?(prebuilt=0x7ffedcb9c6f0)?at?/mysqldata/percona-server-locks-detail-5.7.22/storage/innobase/handler/ha_innodb.cc:1740#1??0x0000000001a50587?in?ha_innobase::write_row?(this=0x7ffedc946470,?record=0x7ffedcb78d00?"\375\n")????at?/mysqldata/percona-server-locks-detail-5.7.22/storage/innobase/handler/ha_innodb.cc:8341#2??0x0000000000f9041d?in?handler::ha_write_row?(this=0x7ffedc946470,?buf=0x7ffedcb78d00?"\375\n")?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/handler.cc:8466#3??0x00000000018004b9?in?write_record?(thd=0x7ffedc012960,?table=0x7ffedcb8f940,?info=0x7ffedcc466c8,?update=0x7ffedcc46740)????at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_insert.cc:1881#4??0x00000000018019b9?in?Query_result_insert::send_data?(this=0x7ffedcc46680,?values=...)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_insert.cc:2279#5??0x00000000015853a8?in?end_send?(join=0x7ffedcb4ea20,?qep_tab=0x7ffedcb4f248,?end_of_records=false)????at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:2925#6??0x0000000001581f71?in?evaluate_join_record?(join=0x7ffedcb4ea20,?qep_tab=0x7ffedcb4f0d0)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:1645#7??0x0000000001581372?in?sub_select?(join=0x7ffedcb4ea20,?qep_tab=0x7ffedcb4f0d0,?end_of_records=false)????at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:1297#8??0x0000000001580be6?in?do_select?(join=0x7ffedcb4ea20)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:950#9??0x000000000157eaa2?in?JOIN::exec?(this=0x7ffedcb4ea20)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:199#10?0x0000000001620327?in?handle_query?(thd=0x7ffedc012960,?lex=0x7ffedc014f90,?result=0x7ffedcc46680,?added_options=1342177280,?removed_options=0)????at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_select.cc:185#11?0x000000000180466d?in?Sql_cmd_insert_select::execute?(this=0x7ffedcc46608,?thd=0x7ffedc012960)

實際上插入數據正是在查詢完數據后調用函數 evaluate_join_record 的時候,通過回調了函數 Query_result_insert::send_data 來實現,這點和單純的 select 不一樣單純的 select 這里調入是函數 Query_result_send::send_data 如下:#0??Query_result_send::send_data?(this=0x7ffedcc465f8,?items=...)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_class.cc:2915#1??0x00000000015853a8?in?end_send?(join=0x7ffedcb4e930,?qep_tab=0x7ffedcb4f4b0,?end_of_records=false)????at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:2925#2??0x0000000001581f71?in?evaluate_join_record?(join=0x7ffedcb4e930,?qep_tab=0x7ffedcb4f338)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:1645#3??0x0000000001581372?in?sub_select?(join=0x7ffedcb4e930,?qep_tab=0x7ffedcb4f338,?end_of_records=false)????at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:1297#4??0x0000000001580be6?in?do_select?(join=0x7ffedcb4e930)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:950#5??0x000000000157eaa2?in?JOIN::exec?(this=0x7ffedcb4e930)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_executor.cc:199#6??0x0000000001620327?in?handle_query?(thd=0x7ffedc012960,?lex=0x7ffedc014f90,?result=0x7ffedcc465f8,?added_options=0,?removed_options=0)????at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_select.cc:185#7??0x00000000015d1f77?in?execute_sqlcom_select?(thd=0x7ffedc012960,?all_tables=0x7ffedcc45cf0)?at?/mysqldata/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:5445

最后推薦高鵬的專欄《深入理解 MySQL 主從原理 32 講》,想要透徹了解學習 MySQL 主從原理的朋友不容錯過。

總結

以上是生活随笔為你收集整理的mysql 1280_技术分享 | MySQL 一次奇怪的故障分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

色综合久久中文字幕综合网 | av中文字幕免费在线观看 | 四虎在线观看视频 | 天天射天天舔天天干 | 免费av观看网站 | 美女视频黄,久久 | 久久精品国产亚洲 | 91视频在线免费看 | 国产九九热 | 99爱视频 | 国产精品美女久久久久久久久久久 | 黄色av成人在线 | 亚洲人天堂 | 久久综合操 | 久草在线在线视频 | 中文字幕精 | 激情久久婷婷 | 日韩一区精品 | 国产第一页在线观看 | 婷婷丁香视频 | 国产中的精品av小宝探花 | 国产黄色免费在线观看 | 国产原厂视频在线观看 | 娇妻呻吟一区二区三区 | 蜜臀av在线一区二区三区 | 午夜视频一区二区 | 91视频久久久久久 | 日韩区欠美精品av视频 | 中文字幕在线视频一区二区三区 | 热99久久精品 | 久久99国产精品自在自在app | 欧美一级xxxx | 久久久久久国产一区二区三区 | 玖玖玖国产精品 | 中文字幕在线视频免费播放 | 国产一级二级三级视频 | 亚洲成人一二三 | 国产69精品久久99不卡的观看体验 | 探花视频在线观看+在线播放 | 亚洲3级 | 国产精品嫩草影院99网站 | 99日精品 | 免费黄色网止 | 日韩美女久久 | 中文字幕色网站 | 中文国产在线观看 | 亚洲精品一区二区三区四区高清 | 最新不卡av | 国产精品99久久99久久久二8 | 日韩久久精品一区 | 蜜桃av人人夜夜澡人人爽 | 精品国产aⅴ一区二区三区 在线直播av | 安徽妇搡bbbb搡bbbb | 国色天香永久免费 | 亚洲国产精品成人女人久久 | 成人av片免费观看app下载 | 日韩女同一区二区三区在线观看 | 亚洲成人第一区 | 久久久久久久久久久久久久电影 | 亚洲最大的av网站 | 91亚洲精品视频 | 激情综合站 | 9在线观看免费高清完整 | 成人免费在线视频观看 | 中文字幕av在线电影 | 成人小视频免费在线观看 | 麻豆视频免费在线 | 国产精品女人网站 | 亚洲天堂精品视频在线观看 | 在线观看免费观看在线91 | 在线观看免费中文字幕 | 在线电影日韩 | av大片免费看 | 久久艹免费 | 精品久久一 | 综合网成人 | 日韩精品一区二 | 亚洲自拍自偷 | 国产在线最新 | 久久久91精品国产一区二区三区 | 久久99久久99精品免费看小说 | 国产伦理久久精品久久久久_ | 免费一级日韩欧美性大片 | 国产精品久久三 | 日韩精品黄| 国产精品久久亚洲 | 精品福利av| 色噜噜日韩精品一区二区三区视频 | 天天干,天天插 | 日韩欧美在线视频一区二区三区 | 久草视频中文在线 | 日韩欧美视频免费在线观看 | 在线观看视频一区二区三区 | 欧美性受极品xxxx喷水 | 午夜精品福利影院 | 99色免费视频 | 在线观看成年人 | 国产无限资源在线观看 | 亚洲成人第一区 | 国产视频不卡 | 国色天香永久免费 | av电影在线观看 | www,黄视频 | 天天·日日日干 | 久久免费视频在线观看6 | 国产超碰在线观看 | 国内外成人免费在线视频 | 中文字幕亚洲精品日韩 | 91在线看黄 | 国产一区二区三区免费在线 | 久久久国产在线视频 | 99精品乱码国产在线观看 | 国产综合视频在线观看 | 免费三级黄色 | 午夜精品一区二区三区免费视频 | 亚洲影视九九影院在线观看 | 在线视频日韩欧美 | 99成人精品 | 天堂va在线高清一区 | 亚洲六月丁香色婷婷综合久久 | 国产成人在线免费观看 | 午夜资源站 | 爱爱av网站 | 亚洲精品免费在线观看视频 | 97在线观看免费高清完整版在线观看 | 国内精品久久久久久久久 | 玖玖视频免费在线 | 波多野结衣视频在线 | 亚洲 欧美日韩 国产 中文 | 免费看污黄网站 | jizz18欧美18 | 国产精品激情偷乱一区二区∴ | 国产黑丝一区二区三区 | 一级精品视频在线观看宜春院 | 国产精品 欧美 日韩 | 九九热视频在线免费观看 | 日韩精品91偷拍在线观看 | 国产h在线观看 | 亚洲成人中文在线 | 欧美日韩网址 | 亚洲精品伦理在线 | 久久免费看av| 国产精品免费久久久久久 | 亚洲天堂网在线播放 | 色999五月色 | 9色在线视频 | 久久免费国产精品 | 激情欧美一区二区三区 | 久久综合毛片 | 高清不卡一区二区在线 | 99久久精品国产亚洲 | 精品视频中文字幕 | 亚洲激情小视频 | www婷婷| 欧美成人亚洲成人 | www.com久久久| 99爱在线 | 欧美成人999 | 国产精品一区二区三区在线播放 | 天堂中文在线播放 | a在线观看视频 | 成人在线免费视频观看 | 久热色超碰 | 极品嫩模被强到高潮呻吟91 | 日日爽天天操 | 深爱激情av | 久久久久免费精品国产 | 91精品国产一区二区在线观看 | 成人资源在线 | 国产午夜精品福利视频 | 99精品热视频只有精品10 | 在线精品亚洲 | 免费福利小视频 | 亚州精品视频 | 天天综合网久久综合网 | 在线观看中文字幕2021 | av电影在线观看完整版一区二区 | 成人av久久| 日韩精品久久久久 | 九九九视频在线 | 99久热精品 | 天天婷婷 | 亚洲网久久 | 国产99精品在线观看 | 日韩欧美视频一区二区 | www视频免费在线观看 | 久久99精品久久久久久久久久久久 | 国产不卡在线播放 | 日本精品久久久久中文字幕5 | 天天干天天在线 | 国产亚洲精品久久久久久大师 | 免费在线观看91 | 免费在线成人av电影 | 欧美少妇的秘密 | 欧美99久久 | 粉嫩一区二区三区粉嫩91 | 蜜臀久久99精品久久久久久网站 | 亚洲国产精品电影 | 免费视频国产 | 五月天六月婷 | 中文字幕丰满人伦在线 | 久久超碰网 | 在线av资源 | 国产精品美 | 日本中文字幕在线播放 | 黄色成年片 | 亚洲人在线视频 | 国产精品久久久久久久久久 | 国产又粗又猛又爽又黄的视频先 | 国产一级视频在线免费观看 | 色a在线观看 | 国产精品一二 | www色片 | 久久久久久久久电影 | 成人国产精品一区 | 欧美二区视频 | 日韩av网页 | 精品久久久久久久 | 亚洲日本激情 | 久久久久久久久久伊人 | 激情综合五月天 | 人人爽人人射 | 欧美精品乱码久久久久久按摩 | 久久少妇| 国产精品18久久久久久久久久久久 | 久久婷婷视频 | 男女啪啪网站 | 国内精品视频免费 | 国产精品videossex国产高清 | 色黄久久久久久 | 久久99精品久久只有精品 | 91精品国自产在线观看 | 91久久久国产精品 | 色视频在线观看 | 这里只有精品视频在线 | 99久久精品国产观看 | 精品1区二区 | 国产亚洲视频在线 | 国产在线一区二区三区播放 | 成人免费在线观看入口 | 中文字幕色在线 | 少妇精69xxtheporn | 精品国产免费一区二区三区五区 | 中文字幕成人网 | 国产精品扒开做爽爽的视频 | 国产精品乱码久久久 | 国产97av | 国产欧美中文字幕 | 手机看片99 | 97在线播放视频 | 网站免费黄| 国产精品亚洲片在线播放 | 在线精品视频免费播放 | avlulu久久精品 | 欧美亚洲一级片 | 成年人黄色大片在线 | 日韩av有码在线 | 欧美成人在线免费观看 | 女人18毛片a级毛片一区二区 | av丝袜在线 | 一区二区三区电影大全 | 国产又粗又猛又色又黄网站 | 久久超| 久草视频在线播放 | 亚洲精品无| 久久综合五月天婷婷伊人 | 在线观看免费91 | 色七七亚洲影院 | 激情综合网天天干 | 高清av网 | 啪啪免费观看网站 | 国产精品激情偷乱一区二区∴ | 成人国产精品久久久久久亚洲 | 亚洲一级黄色 | 久久综合综合久久综合 | 五月婷婷在线观看 | 久久av网址 | 国产一级免费观看 | 日韩在线不卡视频 | 欧美日本啪啪无遮挡网站 | 色橹橹欧美在线观看视频高清 | 高清一区二区三区av | 99精品国产高清在线观看 | 亚洲天堂精品视频 | 国内精品久久久久影院一蜜桃 | 天天干天天插伊人网 | aaaaaa毛片 | 国产精品小视频网站 | 色欧美88888久久久久久影院 | 国产在线免费av | 国产成人精品福利 | 麻豆视频免费在线播放 | 国产美女免费视频 | 久久久久久久久久久影院 | 伊人首页 | 日韩精品久久一区二区 | 一区二区三区韩国免费中文网站 | 99精品久久精品一区二区 | 啪嗒啪嗒免费观看完整版 | 一级免费片 | 国产视频一区二区三区在线 | 午夜精品久久久99热福利 | 亚洲国产综合在线 | 亚洲一区网站 | 免费看一级黄色大全 | 91久草视频 | 麻豆视频在线免费看 | 97国产电影 | 国内外成人免费在线视频 | 一区二区 不卡 | 国产美女精品人人做人人爽 | 色插综合 | 久久99免费观看 | 国产韩国日本高清视频 | 成年人在线免费看视频 | 激情视频网页 | 精品一区中文字幕 | 亚洲成av人片在线观看香蕉 | 亚洲精品国产视频 | 日韩免费在线观看视频 | 久草97| 久久精品人人做人人综合老师 | 国产一级精品在线观看 | 亚洲一区免费在线 | 一级理论片在线观看 | 亚洲欧美国产视频 | 亚洲一区在线看 | 日韩国产精品毛片 | 午夜 久久 tv | 99一区二区三区 | 精品国产一区二区三区日日嗨 | 91九色视频导航 | 午夜精品久久久久久久99无限制 | 激情久久久久久久久久久久久久久久 | 精品1区二区 | 婷婷五综合 | 免费av网站在线 | 午夜国产在线观看 | 日韩精品久久久 | 在线观看国产高清视频 | 精品一区精品二区高清 | 日本精品久久久久 | 草久久久 | 日韩特黄一级欧美毛片特黄 | 久久伊99综合婷婷久久伊 | 成人免费观看视频网站 | 在线视频麻豆 | 九九九九精品九九九九 | 狠狠撸电影 | 99久免费精品视频在线观看 | 六月色丁| 久久夜色网 | 97精品国产97久久久久久春色 | 久久99亚洲网美利坚合众国 | 国产精品视频在线观看 | 亚洲精品国产精品国自产 | 国产91精品久久久久 | 久久精品日韩 | 韩国精品在线 | 8x8x在线观看视频 | 涩涩在线 | 欧美色图亚洲图片 | 久久免费视频在线观看30 | 日韩在线观| 99久久日韩精品免费热麻豆美女 | 日韩视频在线观看免费 | 成人在线视频一区 | 国产精品色视频 | 夜夜夜夜操 | 久久韩国免费视频 | 精品一区二区免费视频 | 中文字幕一区二区三区在线视频 | 国产五月婷 | 最近2019中文免费高清视频观看www99 | 久久成人精品电影 | 国产精品v a免费视频 | 免费视频一区二区 | 国产精品免费大片视频 | 国产精品久久久久久高潮 | 日本黄色大片免费看 | 国产精品短视频 | 日日干av | 国产亚洲永久域名 | 亚洲激情婷婷 | 黄色片视频免费 | 亚洲精品免费在线视频 | 少妇超碰在线 | 日本在线免费看 | 一级成人在线 | 婷婷在线播放 | 国产精国产精品 | 婷婷综合av| 成人黄色小说在线观看 | h文在线观看免费 | 97成人超碰| 欧美日韩在线观看一区二区 | 波多野结衣电影一区二区三区 | 91av中文 | 麻豆国产精品视频 | 天天干天天射天天操 | 天天干,天天操,天天射 | 久久你懂的 | 国产这里只有精品 | 特级毛片aaa | 久久在草 | 国产中文字幕91 | 五月天激情综合网 | 91精品国产99久久久久 | 国产一区二区三区免费在线 | 欧美精品中文字幕亚洲专区 | 国产精品久一 | 美女视频黄是免费的 | 天天操天天摸天天爽 | 麻豆成人精品视频 | 国产精品久久久久毛片大屁完整版 | 黄色动态图xx | 国产精品毛片一区视频 | 国内精品视频在线播放 | 日本三级人妇 | 激情影音先锋 | 久射网| 欧美精品久久久久性色 | 成人免费视频播放 | 色天天| 在线免费观看一区二区三区 | 国产成人精品一区一区一区 | 美女黄久久| 亚洲精品视频观看 | 国产专区第一页 | av色综合网 | av免费在线观看网站 | 99re热精品视频 | 99热这里精品 | 亚洲精品国产日韩 | 在线观看av小说 | 久久久麻豆| 天天色天天射综合网 | 日韩中文字幕免费在线观看 | 国模吧一区 | 美女国产 | 婷色| 蜜桃视频在线观看一区 | 久久高清片 | 成人精品一区二区三区中文字幕 | 蜜桃av人人夜夜澡人人爽 | 国产成人精品亚洲日本在线观看 | 狂野欧美激情性xxxx | 最新国产视频 | 天天干天天上 | 久久激情片 | 国产高清专区 | 九九免费在线观看 | 亚洲欧美少妇 | 日p在线观看 | 天天综合狠狠精品 | 国产高清免费 | 麻豆91精品 | 永久免费看av| 欧美在线视频二区 | 国产日韩欧美综合在线 | a一片一级 | 国产+日韩欧美 | 国内精品久久久久影院男同志 | 日韩视频免费播放 | 亚洲人成网站精品片在线观看 | 天天干天天草天天爽 | 男女免费av| 91久久久久久国产精品 | 中文字幕一区二区三区精华液 | 国产高清视频在线观看 | 蜜桃视频成人在线观看 | 二区视频在线观看 | 在线色亚洲 | 久久免费av电影 | 国产.精品.日韩.另类.中文.在线.播放 | 免费韩国av | 天天草综合网 | av综合 日韩 | 天天夜夜狠狠操 | 亚洲成人二区 | 日b黄色片 | 丁香五月缴情综合网 | 国产字幕在线看 | 亚洲天堂网站视频 | 久久小视频 | 日韩在线观看网址 | 在线播放 日韩专区 | 久久情侣偷拍 | 91av资源在线 | 亚洲小视频在线 | 成人a免费 | 久久久亚洲麻豆日韩精品一区三区 | 亚洲 中文 欧美 日韩vr 在线 | 九九热在线视频免费观看 | 久久久久久久久久伊人 | 黄a网站 | 欧美精品首页 | 久久久国产高清 | 少妇bbb搡bbbb搡bbbb′ | 亚洲精品男人天堂 | 丁香电影小说免费视频观看 | 国产一区二区精品在线 | 亚洲精品一区二区三区在线观看 | 免费观看的黄色片 | 亚洲在线看 | 欧美日韩在线观看视频 | av电影不卡 | 在线观看mv的中文字幕网站 | 99久久久久免费精品国产 | 欧美va天堂va视频va在线 | 日韩欧美在线视频一区二区三区 | 国产污视频在线观看 | av免费看电影 | 麻豆视频入口 | 女人魂免费观看 | 亚洲乱码精品久久久 | 最近最新最好看中文视频 | av成人黄色| 成人黄色国产 | 九九综合九九 | 欧美a级片免费看 | 精品国内自产拍在线观看视频 | 在线观看视频精品 | 天堂网一区二区三区 | 亚洲涩涩涩涩涩涩 | 国产白浆在线观看 | 国产九九热| av免费看看| 五月婷婷丁香网 | 亚洲精品网页 | 国产一级视频 | 四虎影视久久久 | 激情综合啪 | 国产高清在线不卡 | 嫩草伊人久久精品少妇av | 狠狠狠狠狠狠 | 中文字幕 国产视频 | 综合婷婷丁香 | 国产亚洲资源 | 亚洲日本在线视频观看 | 日日爱网站 | 国产探花 | 在线观看中文字幕一区二区 | 91成人免费在线视频 | 狠狠狠狠狠狠天天爱 | a视频在线播放 | 日本爱爱免费 | 不卡中文字幕在线 | 国产剧情在线一区 | 国产精品一区二区三区视频免费 | 久久久久久久久久免费视频 | 国产在线播放一区二区 | 麻豆视频在线观看免费 | 欧美性视频网站 | 国产精品毛片久久 | 九九九九精品 | www.91国产 | av黄色在线播放 | av黄色在线播放 | 在线黄色av | 国产操在线 | 久久电影日韩 | 国产免费av一区二区三区 | 97超碰人 | 99草视频| 国产黄免费 | 日韩大片在线播放 | 综合网伊人 | 久久精品99国产精品日本 | www亚洲精品| 91久久久久久久一区二区 | 在线视频18在线视频4k | 天天躁日日躁狠狠 | 亚洲精品福利在线 | 婷婷久月 | 色多多污污在线观看 | 午夜影院三级 | 亚洲视屏 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 成人av在线网址 | 五月激情av| 国内精品99| 97精品国自产拍在线观看 | 午夜国产在线 | 午夜久久久影院 | 欧美日韩中 | 亚洲色五月 | 99精品视频在线播放观看 | 97在线超碰 | 国产99自拍 | 国产永久免费观看 | 夜夜爽夜夜操 | 中文字幕电影高清在线观看 | 国产99在线免费 | 国产精品视频地址 | 狠狠色狠狠色综合系列 | 美女精品 | 国产视频二 | 久久天天躁夜夜躁狠狠85麻豆 | 一级免费黄色 | 久久激情视频 久久 | 超碰电影在线观看 | 久久1电影院 | 精品国产一区在线观看 | 免费能看的黄色片 | 免费精品久久久 | 欧美人人| 亚洲视频综合在线 | 91精品国产乱码在线观看 | 91精品视频网站 | 最近中文字幕完整高清 | 日韩精品一区二区三区电影 | 日韩av在线高清 | 天天玩天天干 | 中文字幕二区在线观看 | 久久久久久久久爱 | www日韩| 日精品| 在线成人av | 夜夜躁日日躁狠狠躁 | 久久99国产精品视频 | 美女视频黄,久久 | 日韩美视频 | 午夜色场 | 国产精品入口66mio女同 | 国产18精品乱码免费看 | 99亚洲国产精品 | 欧美91精品久久久久国产性生爱 | 99在线高清视频在线播放 | 91女神的呻吟细腰翘臀美女 | 日本黄色一级电影 | 人人射人人射 | 人人狠狠综合久久亚洲 | 国产专区在线视频 | 午夜免费久久看 | 日韩中文三级 | 黄色的网站免费看 | 日本久久不卡视频 | 久久免费成人精品视频 | av成人免费在线观看 | 日韩剧| 久久久噜噜噜久久久 | 欧美,日韩 | 久久精品国产免费 | 精品美女久久久久久免费 | 91精品国产电影 | 91在线蜜桃臀 | 成人免费视频网站 | 色婷婷午夜 | 久久a热6 | 国产一区二区三区免费在线 | 99久久国产免费,99久久国产免费大片 | 久久久2o19精品 | 中文字幕在线一区观看 | 久久精品中文字幕少妇 | 9在线观看免费高清完整版 玖玖爱免费视频 | 国产一级做a爱片久久毛片a | 成人av免费播放 | 99国产精品久久久久久久久久 | 精品一区二区电影 | 91看片淫黄大片在线播放 | 91麻豆精品国产91久久久久 | 天天干天天综合 | 亚洲狠狠丁香婷婷综合久久久 | 在线免费观看国产视频 | 久久 一区 | av天天澡天天爽天天av | 免费亚洲精品视频 | 97在线观看视频国产 | 成人蜜桃 | 2019久久精品 | 日韩欧美视频在线免费观看 | 一级黄色片网站 | 国产永久免费高清在线观看视频 | 久久性生活片 | 亚洲国产色一区 | 日韩在线不卡视频 | 免费看污网站 | 国产成人三级在线 | 91插插影库 | 国产视频首页 | 五月婷婷激情六月 | 爱色av.com | 亚洲精品456在线播放乱码 | 97超碰在| 有没有在线观看av | 麻豆国产精品永久免费视频 | 精品亚洲一区二区 | 2024国产精品视频 | 日韩一区二区久久 | 亚洲精品国产精品99久久 | av不卡在线看 | 久草在线精品观看 | 国产一级片网站 | 五月天电影免费在线观看一区 | 91在线视频在线 | 亚洲精品1234区 | japanesexxxhd奶水| 精品久久久久久久久久久久久久久久 | 天天干天天天天 | 香蕉视频免费看 | 五月婷婷中文网 | 欧美日韩国产一二三区 | 深爱激情开心 | 人人玩人人添人人澡超碰 | 国产欧美精品一区二区三区四区 | 天天摸天天操天天舔 | 欧美极品xxxxx | 888av | 国产福利91精品一区 | 在线观看国产v片 | 成人影视片 | 久草在线视频在线观看 | 黄网站免费大全入口 | 色香蕉在线 | 国产精品国产三级国产不产一地 | 国产韩国日本高清视频 | 成人av电影在线播放 | 久久理论片 | 国产精品99久久久精品 | 亚洲激色 | 久久精品欧美一区 | 综合激情伊人 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 中文字幕在线观看网站 | 日韩激情片在线观看 | 日日夜夜精品免费视频 | 欧美与欧洲交xxxx免费观看 | 国产精品一区二区av麻豆 | 毛片网在线播放 | 中文字幕人成人 | 好看的国产精品视频 | 亚洲成av人片一区二区梦乃 | a久久久久 | 亚洲精品一区二区精华 | 美女网站在线免费观看 | 国产精品手机看片 | 日韩一区二区三区不卡 | 91视频91自拍 | 特及黄色片 | 国产精品麻豆99久久久久久 | 狠狠精品 | av一级片网站 | 久久精品123 | 天天插天天色 | 欧美精品一区二区在线观看 | 一级一片免费看 | 在线观看日韩精品 | 午夜在线资源 | 欧美 日韩 久久 | 中文字幕在线观看日本 | 欧美激情综合五月色丁香小说 | 婷婷在线资源 | 国产小视频你懂的在线 | 欧美日韩中文在线观看 | 免费av 在线 | 色资源网免费观看视频 | 欧美日韩国产二区 | av片中文字幕 | 日韩中文字幕国产精品 | 五月综合激情网 | 日本久久影视 | 亚洲日本欧美 | a黄色片| 国产在线精品一区二区三区 | 在线免费观看的av | 亚洲视频久久 | 国产第一页福利影院 | 日韩xxxx视频 | 色婷婷电影网 | 狠狠操.com| 激情视频91 | 99视频在线免费播放 | 色狠狠狠 | 国产精品网红福利 | 午夜精品久久久久久久99 | 欧美日韩一区二区在线观看 | 国产精品成人在线观看 | 色综合久久久久综合体 | 少妇自拍av | 日韩一区二区免费视频 | 美女很黄免费网站 | 夜色在线资源 | 国产精品毛片久久久久久久 | 成人国产在线 | 免费在线观看国产精品 | 少妇自拍av | 夜夜骑天天操 | 中文字幕在线观看一区二区 | 99精品小视频 | 欧美一级专区免费大片 | 久久成人综合 | 婷婷干五月| 亚洲日本va中文字幕 | 久久久久高清毛片一级 | 国产资源中文字幕 | 久久综合久色欧美综合狠狠 | 免费福利在线 | 国产一区福利 | 国产免费久久久久 | 欧美性色19p | 免费v片 | 亚洲一级免费电影 | 人人玩人人添人人澡97 | 亚洲精品免费在线 | 国产区精品视频 | 欧美国产91| www黄色com | 精品久久久久久久久久岛国gif | 日本高清中文字幕有码在线 | 天天操夜夜操 | 欧美黑人性猛交 | 日韩区在线观看 | 精品一区二区在线观看 | 亚洲精品mv在线观看 | 在线草 | 九九免费在线观看 | 在线播放91 | 日本韩国精品一区二区在线观看 | 成人福利在线观看 | 日本在线观看一区 | 乱男乱女www7788 | 久久99这里只有精品 | 99免费在线 | 成人国产精品久久久 | 婷婷丁香狠狠爱 | 中文字幕乱码视频 | www.久久com | 国产色女人 | 五月天丁香| 久久男女视频 | 天天操夜夜操国产精品 | 国产综合精品一区二区三区 | 97精品免费视频 | 男女激情免费网站 | 免费看污在线观看 | 少妇视频一区 | 国模吧一区 | 欧美一级特黄aaaaaa大片在线观看 | 久久久久久久久久伊人 | 欧美激情精品久久久久久免费印度 | 国产免费国产 | 日本三级在线观看中文字 | 国产精品午夜久久久久久99热 | 91免费版在线观看 | 国产高清黄 | 亚欧洲精品视频在线观看 | 亚洲免费av网站 | 国产清纯在线 | 国产午夜精品一区二区三区在线观看 | mm1313亚洲精品国产 | 欧美亚洲另类在线视频 | 91在线看视频 | av成人免费 | 久久不见久久见免费影院 | 国产片免费在线观看视频 | 精品国产一区二区三区蜜臀 | 最近日本字幕mv免费观看在线 | 亚洲天天在线日亚洲洲精 | 黄色一级大片在线免费看产 | 五月婷久 | 日韩二三区 | 成人黄色在线电影 | 国产第一页精品 | 波多野结依在线观看 | 久草香蕉在线视频 | 精品一区91 | 国产一区二区在线视频观看 | 国产精品九九久久久久久久 | 国产三级香港三韩国三级 | 夜夜操天天操 | 欧美午夜一区二区福利视频 | 精品字幕 | 国产精品第二十页 | 日韩免费在线播放 | 日韩av手机在线观看 | 久久艹99 | 久久高视频 | 天天曰夜夜操 | 在线成人av | 久久久精品欧美一区二区免费 | 最近日本韩国中文字幕 | 黄毛片在线观看 | 国产99免费 | 99电影456麻豆 | 免费看一级特黄a大片 | 尤物九九久久国产精品的分类 | 人人干干人人 | 永久免费精品视频网站 | 777奇米四色 | 2019中文最近的2019中文在线 | 五月婷婷影院 | 色偷偷网站视频 | 国产丝袜网站 | 免费大片av | 免费看特级毛片 | 日韩高清av在线 | 96亚洲精品久久久蜜桃 | 中文字幕免 | av一级在线 | 中文资源在线播放 | 精品999在线 | 青青五月天 | 免费在线观看中文字幕 | 国产永久网站 | 又湿又紧又大又爽a视频国产 | 99视频播放 | 久草电影在线 | 久久久久亚洲精品 | 韩国av在线| 国产精品一区二区62 | 日本二区三区在线 | 亚洲国产精品一区二区久久,亚洲午夜 | 4438全国亚洲精品观看视频 | 欧美色图另类 | 国产成人av| 天天操操 | 午夜久久福利视频 | 免费观看9x视频网站在线观看 | 98超碰在线 | 深夜国产福利 | 国产精品 日韩精品 | 久久福利小视频 | 久久草网 | 麻豆精品视频在线 | 免费看日韩片 | 91视频在线国产 | 色香网 | 九九热在线免费观看 | 久久精品2 | 69精品久久久 | 日韩素人在线观看 | 天天综合网国产 | 日韩午夜高清 | 日本精品久久久久中文字幕5 | 久久久九九| 99久高清在线观看视频99精品热在线观看视频 | 黄色av电影一级片 | 波多野结衣在线视频免费观看 | www色片 | 色偷偷中文字幕 | 日韩女同一区二区三区在线观看 | 欧美影片 | 精品久久91 | 中文字幕在线观看2018 | 国产高清在线永久 | 国产精品理论片在线观看 | 一区二区三区四区五区六区 | 久久99精品久久久久久秒播蜜臀 | av超碰在线观看 | 干综合网 | 手机av观看 | 成人a免费看 | 国产一级不卡毛片 | 成人羞羞免费 | 综合天天网 | 97在线视频观看 | 在线观看中文字幕dvd播放 | 国产精品二区在线观看 | 在线av资源 | 91探花系列在线播放 | 青青河边草免费直播 | 日韩高清黄色 | 久热av在线| 婷婷久久精品 | 97精品伊人| 一区在线播放 | 国产一级片免费观看 | 在线不卡中文字幕播放 | 在线视频免费观看 | 99精品视频观看 | av五月婷婷 | 午夜精品麻豆 | 日日日日 | 欧美日韩精品国产 | 最近中文字幕国语免费av | 久草在线免费资源 | 西西大胆啪啪 | 激情偷乱人伦小说视频在线观看 | 91视频免费观看 | 99九九热只有国产精品 | 毛片精品免费在线观看 | 国内精品在线一区 | 中文在线字幕免 | 久草视频在线免费 | 97av影院| 亚洲精品乱码久久久久久蜜桃不爽 | 亚洲一区二区三区精品在线观看 | 成人手机在线视频 | 精品亚洲二区 | 免费特级黄毛片 | 天天操欧美| 激情视频网页 | 国产精品 中文在线 | 亚洲欧洲一区二区在线观看 | 中文字幕一区二区三区四区视频 | 久久国语露脸国产精品电影 | 97超碰在线免费 |