午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > SQLite教程(十二):鎖和并發控制詳解

SQLite教程(十二):鎖和并發控制詳解

熱門標簽:高德地圖標注電話怎么沒了 江西穩定外呼系統供應商 孝感銷售電銷機器人廠家 北京智能外呼系統供應商家 中國地圖標注省份用什么符號 無錫梁溪公司怎樣申請400電話 智能電銷機器人教育 奧維地圖標注字體大小修改 電話機器人錄音師薪資

一、概述:

    在SQLite中,鎖和并發控制機制都是由pager_module模塊負責處理的,如ACID(Atomic, Consistent, Isolated, and Durable)。在含有數據修改的事務中,該模塊將確保或者所有的數據修改全部提交,或者全部回滾。與此同時,該模塊還提供了一些磁盤文件的內存Cache功能。
    事實上,pager_module模塊并不關心數據庫存儲的細節,如B-Tree、編碼方式、索引等,它只是將其視為由統一大小(通常為1024字節)的數據塊構成的單一文件,其中每個塊被稱為一個頁(page)。在該模塊中頁的起始編號為1,即第一個頁的索引值是1,其后的頁編號以此類推。
   
二、文件鎖:

    在SQLite的當前版本中,主要提供了以下五種方式的文件鎖狀態。
    1). UNLOCKED:
    文件沒有持有任何鎖,即當前數據庫不存在任何讀或寫的操作。其它的進程可以在該數據庫上執行任意的讀寫操作。此狀態為缺省狀態。
    2). SHARED:
    在此狀態下,該數據庫可以被讀取但是不能被寫入。在同一時刻可以有任意數量的進程在同一個數據庫上持有共享鎖,因此讀操作是并發的。換句話說,只要有一個或多個共享鎖處于活動狀態,就不再允許有數據庫文件寫入的操作存在。
    3). RESERVED:
    假如某個進程在將來的某一時刻打算在當前的數據庫中執行寫操作,然而此時只是從數據庫中讀取數據,那么我們就可以簡單的理解為數據庫文件此時已經擁有了保留鎖。當保留鎖處于活動狀態時,該數據庫只能有一個或多個共享鎖存在,即同一數據庫的同一時刻只能存在一個保留鎖和多個共享鎖。在Oracle中此類鎖被稱之為預寫鎖,不同的是Oracle中鎖的粒度可以細化到表甚至到行,因此該種鎖在Oracle中對并發的影響程序不像SQLite中這樣大。
    4). PENDING:
    PENDING鎖的意思是說,某個進程正打算在該數據庫上執行寫操作,然而此時該數據庫中卻存在很多共享鎖(讀操作),那么該寫操作就必須處于等待狀態,即等待所有共享鎖消失為止,與此同時,新的讀操作將不再被允許,以防止寫鎖饑餓的現象發生。在此等待期間,該數據庫文件的鎖狀態為PENDING,在等到所有共享鎖消失以后,PENDING鎖狀態的數據庫文件將在獲取排他鎖之后進入EXCLUSIVE狀態。
    5). EXCLUSIVE:
    在執行寫操作之前,該進程必須先獲取該數據庫的排他鎖。然而一旦擁有了排他鎖,任何其它鎖類型都不能與之共存。因此,為了最大化并發效率,SQLite將會最小化排他鎖被持有的時間總量。
   
    最后需要說明的是,和其它關系型數據庫相比,如MySQL、Oracle等,SQLite數據庫中所有的數據都存儲在同一文件中,與此同時,它卻僅僅提供了粗粒度的文件鎖,因此,SQLite在并發性和伸縮性等方面和其它關系型數據庫還是無法比擬的。由此可見,SQLite有其自身的適用場景,就如在本系列開篇中所說,它和其它關系型數據庫之間的互換性還是非常有限的。

三、回滾日志:

    當一個進程要改變數據庫文件的時候,它首先將未改變之前的內容記錄到回滾日志文件中。如果SQLite中的某一事務正在試圖修改多個數據庫中的數據,那么此時每一個數據庫都將生成一個屬于自己的回滾日志文件,用于分別記錄屬于自己的數據改變,與此同時還要生成一個用于協調多個數據庫操作的主數據庫日志文件,在主數據庫日志文件中將包含各個數據庫回滾日志文件的文件名,在每個回滾日志文件中也同樣包含了主數據庫日志文件的文件名信息。然而對于無需主數據庫日志文件的回滾日志文件,其中也會保留主數據庫日志文件的信息,只是此時該信息的值為空。
    我們可以將回滾日志視為"HOT"日志文件,因為它的存在就是為了恢復數據庫的一致性狀態。當某一進程正在更新數據庫時,應用程序或OS突然崩潰,這樣更新操作就不能順利完成。因此我們可以說"HOT"日志只有在異常條件下才會生成,如果一切都非常順利的話,該文件將永遠不會存在。

四、數據寫入:

    如果某一進程要想在數據庫上執行寫操作,那么必須先獲取共享鎖,在共享鎖獲取之后再獲取保留鎖。因為保留鎖則預示著在將來某一時刻該進程將會執行寫操作,所以在同一時刻只有一個進程可以持有一把保留鎖,但是其它進程可以繼續持有共享鎖以完成數據讀取的操作。如果要執行寫操作的進程不能獲取保留鎖,那么這將說明另一進程已經獲取了保留鎖。在此種情況下,寫操作將失敗,并立即返回SQLITE_BUSY錯誤。在成功獲取保留鎖之后,該寫進程將創建回滾日志。
    在對任何數據作出改變之前,寫進程會將待修改頁中的原有內容先行寫入回滾日志文件中,然而,這些數據發生變化的頁起初并不會直接寫入磁盤文件,而是保留在內存中,這樣其它進程就可以繼續讀取該數據庫中的數據了。
    或者是因為內存中的cache已滿,或者是應用程序已經提交了事務,最終,寫進程將數據更新到數據庫文件中。然而在此之前,寫進程必須確保沒有其它的進程正在讀取數據庫,同時回滾日志中的數據確實被物理的寫入到磁盤文件中,其步驟如下:
    1). 確保所有的回滾日志數據被物理的寫入磁盤文件,以便在出現系統崩潰時可以將數據庫恢復到一致的狀態。
    2). 獲取PENDING鎖,再獲取排他鎖,如果此時其它的進程仍然持有共享鎖,寫入線程將不得不被掛起并等待直到那些共享鎖消失之后,才能進而得到排他鎖。
    3). 將內存中持有的修改頁寫出到原有的磁盤文件中。
    如果寫入到數據庫文件的原因是因為cache已滿,那么寫入進程將不會立刻提交,而是繼續對其它頁進行修改。但是在接下來的修改被寫入到數據庫文件之前,回滾日志必須被再一次寫到磁盤中。還要注意的是,寫入進程獲取到的排他鎖必須被一直持有,直到所有的改變被提交時為止。這也意味著,從數據第一次被刷新到磁盤文件開始,直到事務被提交之前,其它的進程不能訪問該數據庫。
    當寫入進程準備提交時,將遵循以下步驟:
    4). 獲取排他鎖,同時確保所有內存中的變化數據都被寫入到磁盤文件中。
    5). 將所有數據庫文件的變化數據物理的寫入到磁盤中。
    6). 刪除日志文件。如果在刪除之前出現系統故障,進程在下一次打開該數據庫時仍將基于該HOT日志進行恢復操作。因此只有在成功刪除日志文件之后,我們才可以認為該事務成功完成。
    7). 從數據庫文件中刪除所有的排他鎖和PENDING鎖。
    一旦PENDING鎖被釋放,其它的進程就可以開始再次讀取數據庫了。
    如果一個事務中包含多個數據庫的修改,那么它的提交邏輯將更為復雜,見如下步驟:
    4). 確保每個數據庫文件都已經持有了排他鎖和一個有效的日志文件。
    5). 創建主數據庫日志文件,同時將每個數據庫的回滾日志文件的文件名寫入到該主數據庫日志文件中。
    6). 再將主數據庫日志文件的文件名分別寫入到每個數據庫回滾日志文件的指定位置中。
    7). 將所有的數據庫變化持久化到數據庫磁盤文件中。
    8). 刪除主日志文件,如果在刪除之前出現系統故障,進程在下一次打開該數據庫時仍將基于該HOT日志進行恢復操作。因此只有在成功刪除主日志文件之后,我們才可以認為該事務成功完成。
    9). 刪除每個數據庫各自的日志文件。
    10).從所有數據庫中刪除掉排他鎖和PENDING鎖。
   
    最后需要說明的是,在SQLite2中,如果多個進程正在從數據庫中讀取數據,也就是說該數據庫始終都有讀操作發生,即在每一時刻該數據庫都持有至少一把共享鎖,這樣將會導致沒有任何進程可以執行寫操作,因為在數據庫持有讀鎖的時候是無法獲取寫鎖的,我們將這種情形稱為"寫饑餓"。在SQLite3中,通過使用PENDING鎖則有效的避免了"寫饑餓"情形的發生。當某一進程持有PENDING鎖時,已經存在的讀操作可以繼續進行,直到其正常結束,但是新的讀操作將不會再被SQLite接受,所以在已有的讀操作全部結束后,持有PENDING鎖的進程就可以被激活并試圖進一步獲取排他鎖以完成數據的修改操作。
   
五、SQL級別的事務控制:

    SQLite3在實現上確實針對鎖和并發控制做出了一些精巧的變化,特別是對于事務這一SQL語言級別的特征。在缺省情況下,SQLite3會將所有的SQL操作置于antocommit模式下,這樣所有針對數據庫的修改操作都會在SQL命令執行結束后被自動提交。在SQLite中,SQL命令"BEGIN TRANSACTION"用于顯式的聲明一個事務,即其后的SQL語句在執行后都不會自動提交,而是需要等到SQL命令"COMMIT"或"ROLLBACK"被執行時,才考慮提交還是回滾。由此可以推斷出,在BEGIN命令被執行后并沒有立即獲得任何類型的鎖,而是在執行第一個SELECT語句時才得到一個共享鎖,或者是在執行第一個DML語句時才獲得一個保留鎖。至于排它鎖,只有在數據從內存寫入磁盤時開始,直到事務提交或回滾之前才能持有排它鎖。
    如果多個SQL命令在同一個時刻同一個數據庫連接中被執行,autocommit將會被延遲執行,直到最后一個命令完成。比如,如果一個SELECT語句正在被執行,在這個命令執行期間,需要返回所有檢索出來的行記錄,如果此時處理結果集的線程因為業務邏輯的需要被暫時掛起并處于等待狀態,而其它的線程此時或許正在該連接上對該數據庫執行INSERT、UPDATE或DELETE命令,那么所有這些命令作出的數據修改都必須等到SELECT檢索結束后才能被提交。

    這是該系列中最后一篇關于SQLite理論與應用方面的博客了,后面將發布兩篇關于如何利用SQLite編程的博客,其中還將包含四個典型的應用代碼示例,望大家繼續保持關注。

您可能感興趣的文章:
  • Sqlite數據庫里插入數據的條數上限是500
  • SQLite教程(八):命令行工具介紹
  • SQLite教程(十四):C語言編程實例代碼(2)
  • python查詢sqlite數據表的方法
  • SQLite之Autoincrement關鍵字(自動遞增)

標簽:通化 海北 荊州 齊齊哈爾 那曲 臨滄 阜陽 泰州

巨人網絡通訊聲明:本文標題《SQLite教程(十二):鎖和并發控制詳解》,本文關鍵詞  SQLite,教程,十二,鎖,和,并發,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLite教程(十二):鎖和并發控制詳解》相關的同類信息!
  • 本頁收集關于SQLite教程(十二):鎖和并發控制詳解的相關信息資訊供網民參考!
  • 推薦文章
    www亚洲成人| 欧洲熟妇精品视频| 日韩一卡二卡三卡| 91亚洲精品国偷拍自产在线观看| 在线一区日本视频| 亚洲成在人线av| 欧洲成人一区二区三区| 成人观看免费完整观看| yellow中文字幕久久| 成人一道本在线| www.88av| 国产欧美一区二区三区四区| 亚洲午夜电影在线| 日韩精选在线观看| 一本久道高清无码视频| 亚洲精品mp4| 黄一区二区三区| 538国产视频| 97人摸人人澡人人人超一碰| 色就色 综合激情| 精品人妻一区二区三区三区四区| 成年人网站大全| 久久久久久久成人| 亚洲欧洲日韩在线| 国产超碰人人爽人人做人人爱| 日本不卡在线观看| 亚洲精品成人av| 国产sm精品调教视频网站| 一级黄色片网址| 欧美乱偷一区二区三区在线| 欧美不卡视频一区| 国产精品一二三四五| 亚洲精品在线视频免费观看| 91丨九色丨国产| 7777女厕盗摄久久久| 蜜臂av日日欢夜夜爽一区| 国产 中文 字幕 日韩 在线| www日韩av| 91精品国产美女浴室洗澡无遮挡| 奇米777欧美一区二区| 国产福利在线观看视频| 精品亚洲第一| 亚洲老头同性xxxxx| 岛国av在线一区| 麻豆视频在线观看| 久久综合久久久久| 97精品久久久| 欧美日韩国产综合视频在线观看中文| 亚洲国产精品久久久久久6q| 亚洲911精品成人18网站| 成人在线中文字幕| 538在线一区二区精品国产| 极品美女销魂一区二区三区 | 看一级黄色录像| 日韩中文有码在线视频| 亚洲天天做日日做天天谢日日欢| 中文字幕一区二区在线视频| 热久久久久久久久| 99在线视频首页| 日韩高清av在线| 国产日产欧美一区| 亚洲一区中文字幕永久在线| 亚洲制服中文字幕| 国产精品国产亚洲精品看不卡15 | 国产精品国产一区二区| 日韩电视剧免费观看网站| 91视频.com| 国产一级免费视频| 日本男人操女人| 91精品中文在线| 亚洲精品国精品久久99热一| 久久久久88色偷偷免费| 亚洲图片欧美在线| 影音先锋资源av| 日韩亚洲不卡在线| 欧美激情videoshd| 欧美丝袜第三区| 成人一区二区三区视频在线观看| 日韩和一区二区| 手机视频在线观看| 国产视频在线观看一区| 日韩中文字幕网| 狠狠色狠狠色综合日日五| 麻豆精品在线观看| 亚洲 欧美 视频| 伊人成人222| 欧美黑人xxxxx| 九九热这里只有在线精品视| 黑人狂躁日本妞一区二区三区| 精品一区二区免费在线观看| 天海翼一区二区| 一级黄色片在线免费观看| 欧洲在线视频一区| 97超级碰碰人国产在线观看| 制服丝袜亚洲网站| 中文一区二区完整视频在线观看| 国产成人手机在线| 成年人午夜剧场| 北条麻妃在线一区| 精品久久久久亚洲| 久久久久久伊人| 日韩午夜在线播放| 亚洲人成精品久久久久| 奇米色一区二区| 无码人妻一区二区三区免费| 2一3sex性hd| 妞干网在线观看视频| 国产主播欧美精品| www.久久色.com| 欧美日韩成人一区| 中文字幕日本不卡| 国产一区二区三区四| 97精品久久人人爽人人爽| 最新黄色av网址| 伊人国产精品视频| 成人在线观看www| av一区二区三区在线观看| 另类图片亚洲另类| 欧美一区二区视频在线观看2022 | 国产在线视频不卡二| 中文 欧美 日韩| 任你操精品视频| 亚洲免费999| 加勒比海盗1在线观看免费国语版| 91精品在线看| 久久全国免费视频| 亚洲精品一区二区久| 色综合色综合色综合| 国产日韩欧美精品一区| 精品影视av免费| 国产精品欧美激情在线| 久久伊人成人网| 亚洲熟妇无码av| 亚洲一区二区三区四区五区xx| 亚洲精品一区国产精品| 91在线免费看网站| 孩xxxx性bbbb欧美| 中文字幕在线精品| 欧美成人官网二区| 色久优优欧美色久优优| 国产精品久久久久aaaa| 成人污污视频在线观看| 久久国产主播| 99精品视频免费看| 伦av综合一区| 青青草激情视频| 黄色在线观看av| 91视频免费入口| 日韩精品免费播放| 人人妻人人澡人人爽欧美一区双| 免费精品视频一区二区三区| 成人免费视频a| 国产成+人+综合+亚洲欧美丁香花| www.亚洲成人| 亚洲美女性生活视频| 日韩一区二区在线观看视频 | 日韩av手机在线| 欧美另类老女人| 国产亚洲精品久久久久久| 欧美一区二区三区免费在线看| 精品高清美女精品国产区| 国产精品久久久久久久裸模| 成人黄色av电影| 性猛交富婆╳xxx乱大交天津 | 大地资源二中文在线影视观看 | 久草视频在线免费| 国产欧美一区二区三区在线看蜜臂| 国产精品一二三区在线观看| 成年人性生活视频| 午夜精品在线免费观看| 久久这里只有精品8| 浴室偷拍美女洗澡456在线| 免费成人看片网址| 九色91视频| 动漫精品视频| 国产在线拍偷自揄拍精品| 97超级碰在线看视频免费在线看| 久久天天躁日日躁| 在线播放国产一区中文字幕剧情欧美| 亚洲国产日韩欧美在线99| 欧美一卡二卡三卡四卡| 欧美日韩精品是欧美日韩精品| 色综合中文综合网| 午夜精品久久久久久久| 午夜视频在线观看一区二区三区| 亚洲免费观看高清在线观看| 欧美国产日韩亚洲一区| 国产欧美日韩三级| 国产xxx精品视频大全| 粉嫩一区二区三区在线看| 国产又黄又大久久| 狠狠色狠狠色综合系列| 精品无人码麻豆乱码1区2区| 日韩一区免费视频| 天堂av中文字幕| 日本精品一区二区在线观看| 免费看黄色一级视频| 午夜精品久久久久久久99老熟妇 | 国产午夜久久久久| 久久色在线视频| 久久久99久久精品欧美| 久久久久久久久久久99999| 不卡视频在线观看| av午夜精品一区二区三区| 狠狠网亚洲精品| 成人av在线网| 99精品欧美一区| 久久久91精品国产一区二区三区| 久久久综合九色合综国产精品| 欧美激情一区二区| 亚洲欧洲国产日韩| 亚洲精品视频免费观看| 无吗不卡中文字幕| 亚洲午夜影视影院在线观看| 欧美色另类天堂2015| 欧美专区日韩专区| 欧美一区二区三级| 精品欧美一区二区精品久久| 亚洲乱码一区二区三区| 国产又粗又猛又爽又黄91| 18一19gay欧美视频网站| 中文字幕在线字幕中文| 欧美色中文字幕| zjzjzjzjzj亚洲女人| 91九色丨porny丨国产jk| 日韩黄色在线观看| 欧美一区二区.| 性欧美18一19性猛交| 日韩欧美视频免费在线观看| 欧美精品三级日韩久久| 韩国三级在线看| 3d成人h动漫网站入口| 精品一区二区在线观看视频| 欧美丰满高潮xxxx喷水动漫| 免费黄色一级网站| 欧美性猛交xxxxx免费看| 黄色国产在线视频| 久久免费精品视频| 国产精品久久久爽爽爽麻豆色哟哟| 能直接看的av| 精品国产免费一区二区三区| 精品久久香蕉国产线看观看亚洲 | 极品蜜桃臀肥臀-x88av| 欧美疯狂性受xxxxx喷水图片| 亚洲一区二区观看| 久久精品成人动漫| 欧美激情视频一区二区| 久久99国产精品自在自在app| 久久99久久精品| 国产精品密蕾丝袜| 成人国产精品色哟哟| 国产精品美女久久久久久久| 在线观看成人毛片| 亚洲a在线播放| 成人亚洲精品久久久久软件| 国产精品一区在线免费观看| 中文字幕亚洲一区二区va在线| 超碰在线超碰在线| 欧美v亚洲v综合ⅴ国产v| 国语对白永久免费| 国产香蕉一区二区三区在线视频| 久草网视频在线观看| 伊人久久综合97精品| 成人精品鲁一区一区二区| aa片在线观看视频在线播放| 中文字幕免费国产精品| 天堂免费在线视频| 92裸体在线视频网站| 亚洲夂夂婷婷色拍ww47| 精品免费国产一区二区| 婷婷国产v国产偷v亚洲高清| 欧美日韩精品在线观看视频| 岛国视频一区| 亚洲精品永久免费| 自拍偷拍欧美精品| 日日躁夜夜躁白天躁晚上躁91| 麻豆短视频在线观看| 欧美一区二区三区精美影视| 日韩黄色av网站| 国产精品白丝jk白祙喷水网站| 人与动物性xxxx| 国产精品久久久久久久久久免费 | 免费看一级视频| 亚洲欧洲中文日韩久久av乱码| 91在线播放观看| 日本黄色a视频| 欧美性色黄大片| 又色又爽的视频| 成人午夜一级二级三级| 五月天久久比比资源色| 男女全黄做爰文章| 亚洲美女av网站| 青青草国产精品97视觉盛宴| 超碰男人的天堂| 成人夜晚看av| 国产视频一区在线| 国产日韩视频一区二区三区| 亚洲欧美日韩动漫| 精品少妇一区二区三区密爱| 亚洲欧洲一区二区| 久久久久久91香蕉国产| 一区二区三区蜜桃| 国产精品第一页在线观看| 日本一区不卡| 日本高清无吗v一区| 在线观看免费视频a| 福利视频一二区| 美女久久久久久久久久久| 91在线观看高清| 韩国三级与黑人| 久久久久国色av免费观看性色 | 欧美日韩在线视频一区| 小泽玛利亚一区二区免费| 国产免费一区二区三区| 91精品国产综合久久久蜜臀图片| 七七婷婷婷婷精品国产| 图片区小说区区亚洲五月| 亚洲国产成人av在线| a在线欧美一区| 永久久久久久久| 人妻av无码专区| 亚洲精品在线免费播放| 99re成人精品视频| 99精品在线看| 精品小视频在线观看| 手机免费看av片| 六月丁香婷婷在线| 一区二区欧美日韩| 国产精品自产拍在线观| 在线观看精品国产视频| 色婷婷久久一区二区三区麻豆| 日本一区中文字幕| 免费看黄色aaaaaa 片| 国产精品一码二码三码在线| 欧美日韩一级视频| av不卡在线观看| 日本美女久久久| 亚洲一卡二卡三卡四卡无卡网站在线看| 久久视频国产精品免费视频在线| 成人免费观看av| 国产一级淫片a| 夫妻免费无码v看片| 99re国产在线播放| 欧美亚洲在线观看| 日韩视频免费在线观看| 午夜精品福利久久久| 蜜臀va亚洲va欧美va天堂| www色aa色aawww| 黑人糟蹋人妻hd中文字幕| 91精品国产亚洲| 亚洲另类色综合网站| 高清在线不卡av| 五月天中文字幕| 欧美性受xxxx黑人| 久久视频一区二区三区| 国产亚洲精品精品精品| 精品国产aⅴ一区二区三区东京热| 欧美三级午夜理伦三级富婆| 白白操在线视频| 欧美一区少妇| 欧美在线播放一区| 久久青青草综合| 91福利入口| 911国产网站尤物在线观看| 亚洲成人1234| 中文字幕不卡在线观看| 成人小视频免费看| 日本www.色| 鲁丝一区二区三区免费| 国产成人精品最新| 亚洲精品在线91| 亚洲欧洲av在线| 男人的天堂a在线| 欧美一级高潮片| 污片免费在线观看| 国产精品久久久久久亚洲色 | 精品国产精品三级精品av网址| 国产精品一二一区| 久久99国产精品尤物| 国产三级小视频| 精品国产乱码久久久久久1区二区| 欧美日韩免费观看一区| 成人h猎奇视频网站| 久久久久久网站| 1769国产精品| 国产精品扒开腿爽爽爽视频 | 制服丝袜成人动漫| 精品一区二区三区四区在线| 久久久久久国产| 欧美亚洲一级片| 成人精品一区二区三区电影免费 | 日韩免费观看高清完整版在线观看| 午夜精品一区二区三区免费视频| 一区二区激情视频| 国产一区二区0| 国产a久久麻豆| 国产精品69毛片高清亚洲| 日本少妇一区二区| 日韩经典一区二区| 免费在线观看一区二区三区| 中文在线免费观看| 可以免费看的av毛片| 国产美女福利视频| 萌白酱视频在线| 久久久久久久久久久网| 中文字幕 国产| 久久三级视频| 精品人妻一区二区三区三区四区| 亚洲精品国产手机| 人妻91麻豆一区二区三区|