亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQLite > 正文

簡單分析SQLite4的一些設(shè)計改變

2020-10-29 21:49:32
字體:
供稿:網(wǎng)友

1.0 內(nèi)容提要

    SQLite4 是一個放在庫中的緊湊的,自包含的,零維護(hù)的的ACID數(shù)據(jù)庫引擎, 像SQLite3一樣, 但具有改進(jìn)的接口和文件格式.

    運(yùn)行時環(huán)境封裝到了一個對象之中.

    使用了一個很不錯的鍵值對存儲引擎:

  •         一個獨(dú)立的大型鍵空間 - 不是SQLite3中那種每個表單獨(dú)的鍵空間和索引.
  •         按字典順序的鍵排序.
  •         多個存儲引擎,可在運(yùn)行時互換.
  •         默認(rèn)在磁盤上的存儲殷勤使用了一個日志結(jié)構(gòu)的合并數(shù)據(jù)庫.

    表的PRIMARY KEY真正被用作存儲引擎的鍵.

    可以使用小數(shù)點(diǎn)運(yùn)算.

    外鍵約束和遞歸觸發(fā)器默認(rèn)是啟用的.

    覆蓋指數(shù)可以顯示聲明.


2.0 概述

SQLite4 對于SQLite3而言,是一個可選方案,而不是一個替代方案. SQLite3 還沒有過時. SQLite3 和 QLite4 將會并行受到支持. SQLite3 遺留的好處不會被拋棄.   SQLite3 還將會被持續(xù)的維護(hù)和改進(jìn). 但如果需要的話,新系統(tǒng)的設(shè)計者現(xiàn)在將可以選擇 SQLite4 而不是 SQLite3.

SQLite4 努力保持了SQLite3的最優(yōu)秀特性,同時在不破壞兼容性的前提下解決了SQLite3中無法修復(fù)的問題. SQLite3 和 SQLite4 中將會持續(xù)保持一樣的特性有:

  •     SQLite4 是放在一個庫中并鏈接到一個大型應(yīng)用程序的完整的,關(guān)系型,事務(wù)性的, ACID, SQL 數(shù)據(jù)庫引擎.  沒有服務(wù)器,I/O直接面向硬盤.
  •     SQLite4 的源代碼任何人可以用于任何目的.  沒有版權(quán)、發(fā)布或者公開源代碼或者編譯二進(jìn)制文件方面的的限制.  不用去擔(dān)心煩人的許可證.
  •     使用了動態(tài)類型,而不是大多數(shù)其它的SQL數(shù)據(jù)庫引擎所使用的僵化的靜態(tài)類型.
  •     (默認(rèn))在磁盤上的鏡像是一個單獨(dú)的使用良好且穩(wěn)定文件格式的磁盤文件, 使得SQLite4庫適合于作為一個應(yīng)用程序的文件格式使用.
  •     SQLite4 將會是快速且可靠的,無需管理員操心它就能運(yùn)作的蠻好.
  •     SQLite4 的實(shí)現(xiàn)只有最簡化的依賴,因而它可以很容易的集成到嵌入式系統(tǒng)或者其它非常規(guī)的運(yùn)行時環(huán)境.

實(shí)現(xiàn)上仍然采用常用的匯編語言C。與SQLite3相比,SQLite4使用了更多C99特性,不過仍然可以使用常見的編譯器編譯。SQLite4使用了諸如size_t,int64_t,uint64_t以及其他標(biāo)準(zhǔn)數(shù)據(jù)類型。

SQLite4的編程接口與SQLite3的非常相似,只不過命名前綴都從sqlite3_更改為sqlite4_。SQLite3中舊的和作廢的接口已經(jīng)從SQLite4中剔除了。給一些函數(shù)增加了參數(shù),有時對參數(shù)稍作修改或者對其參數(shù)順序進(jìn)行重新排序。修改了某些接口名字,使其更加符合其功能??傮w上來說,SQLite4的編程接口與SQLite3的非常相似,這樣移植一個SQLite3上的應(yīng)用到SQLite4上只需花一個小時或者兩個小時完成搜索替代就可以了。

SQLite3和SQLite4沒有共用任何符號,因此把SQLite3和SQLite4同時嵌入到同一進(jìn)程,同時使用它們都是可行的.

3.0 SQLite4的主要改變
3.1 運(yùn)行時對象

SQLite4中一些接口的第一個參數(shù)接收一個(新加的)指向一個sqlite4_env對象的指針,它定義了運(yùn)行時環(huán)境。需要接收sqlite4_env指針的示例程序包括:

  •     sqlite4_open()
  •     sqlite4_malloc(), sqlite4_realloc(), and     sqlite4_free()
  •     sqlite4_mprintf()
  •     sqlite4_random()
  •     sqlite4_config()

一個sqlite4_env對象實(shí)例定義了SQLite4與其他系統(tǒng)交互是如何交互的。一個sqlite4_env對象包含的方法能夠:

  •     分配,進(jìn)入,離開和收回互斥體
  •     分配,調(diào)整和釋放堆內(nèi)存,
  •     訪問和控制底層鍵/值存儲引擎,
  •     使用高質(zhì)量隨機(jī)種子初始化內(nèi)建PRNG,
  •     取得當(dāng)前時間和日期與本地時區(qū),
  •     記錄error日志消息.


標(biāo)準(zhǔn)平臺(windows和Unix)的SQLite4構(gòu)建包含了一個全局sqlite4_env對象,通常這個對象適配于所在平臺。如果一個接口程序的參數(shù)中有一個指向sqlite4_env對象的指針,而且傳給這個參數(shù)的指針是空指針時,這個接口程序就會使用默認(rèn)的全局sqlite4_env對象。另外,某些應(yīng)用可能要求在相同的地址空間上運(yùn)行兩個或者多個SQLite4實(shí)例,同時每個實(shí)例使用了各自不同的互斥原語,不同的內(nèi)存堆以及不同的時間日期函數(shù)等等。SQLite4通過對每個數(shù)據(jù)庫實(shí)例創(chuàng)建不同的sqlite4_env對象來滿足這種需求。sqlite4_env對象中還廢除了全局和靜態(tài)變量,這樣就可以非常容易地把SQLite4移植到哪些對靜態(tài)或者全局?jǐn)?shù)據(jù)提供有限支持的嵌入式系統(tǒng)中。

3.2 簡化的鍵/值存儲引擎

相對于SQLite3,SQLite4使用的鍵/值存儲引擎擁有一個大大簡化了的接口。這個存儲引擎是可拔插的;通過對qlite4_env對象在打開新的數(shù)據(jù)庫連接前做適當(dāng)?shù)母膭?,它可以在運(yùn)行時被改變。

SQLite4 需要一個實(shí)現(xiàn)了有序鍵/值對的存儲引擎,它的鍵和值是任意長度的二進(jìn)制數(shù)據(jù)。鍵必須惟一,且按字典排序。也就是說,鍵應(yīng)該根據(jù)一個比較函數(shù)進(jìn)行排序,例如:
 

復(fù)制代碼 代碼如下:

int key_compare(const void *key1, int n1, const void *key2, int n2){
  int c = memcmp(key1, key2, n1<n2 ? n1 : n2);
  if( c==0 ) c = n1 - n2;
  return c;
}

給定一個探針鍵,SQLite4需要能夠找到它最近的鍵,然后以字典序升序或降序遍歷鍵。向一個已有的鍵插入數(shù)據(jù)時會覆蓋舊數(shù)據(jù)。事務(wù),包括原子提交和回滾,由存儲引擎負(fù)責(zé)。

SQLite4經(jīng)由表和索引,將所有數(shù)據(jù)存儲到一個單獨(dú)的鍵空間, 與此相反,SQLite3中每個表和索引都需要一個單獨(dú)的鍵空間。SQLite4的存儲也與SQLite3不同,因?yàn)樗枰鎯σ嬉宰值湫驅(qū)︽I進(jìn)行排序, 而SQLite3使用了一個非常復(fù)雜的比較函數(shù)來決定記錄的存儲順序。

SQLite4與存儲引擎之間的通信是通過一個定義完善的并且簡單的接口進(jìn)行的。新的存儲引擎可以在運(yùn)行期間進(jìn)行替換:只要在指定數(shù)據(jù)庫連接之前替換sqlite4_env對象里的某些函數(shù)指針就可以了。

如果替換的存儲引擎不支持回滾,那么這就意味著SQLite4無法運(yùn)行ROLLBACK。如果替換的存儲引擎不支持事務(wù)嵌套,那么這就意味著SQLite4無法運(yùn)行嵌套事務(wù)。因此,嵌入到SQLite4中的存儲引擎的功能越少,對應(yīng)的整體的系統(tǒng)功能就會越差。

默認(rèn)情況下內(nèi)置的存儲引擎是日志結(jié)構(gòu)的合并式數(shù)據(jù)庫。它比LevelDB要快很多倍,支持嵌套式事務(wù),它把整個內(nèi)容存儲在單一的磁盤文件里。SQLite4的未來版本還可能包含一個內(nèi)置的采用B樹結(jié)構(gòu)的存儲引擎。

3.3 現(xiàn)在的PRIMARY KEY是真正的主鍵

Sqlite3允許聲明表中的任何單個或多列為主鍵。但在內(nèi)部,SQLite3只將PRIMARY KEY簡單地當(dāng)做唯一約束來對待。實(shí)際中用于存儲使用的鍵是每一行的rowid。

Sqlite4則相反,它真實(shí)地使用聲明的表主鍵(更確切地說是PRIMARY KEY的編碼值)作為鍵而插入存儲引擎。SQLite4表通常沒有rowid(除非在表沒有PRIMARY KEY的情況下,這時需要一個rowid作為隱式主鍵。)這意味著內(nèi)容在磁盤中按主鍵的順序存儲。這也意味著可以通過對PRIMARY KEY的一次查詢即可定位記錄。在SQLite3中,主鍵上的一個搜索意味著在自動創(chuàng)建的索引中先找到rowid,然后依據(jù)該rowid對主表做一個二次搜索。

SQLite4 需要 PRIMARY KEY 的所有元素不能為空. 這是一條SQL標(biāo)準(zhǔn).  由于早期版本的疏忽, SQLite3 沒有在PRIMARY KEY 列上強(qiáng)制加上這條NOT NULL約束,到該漏洞被發(fā)現(xiàn)的時候SQLite3已經(jīng)在被廣泛使用了, NOT NULL 約束的激活就可能會對太多的程序造成影響.
3.4 十進(jìn)制數(shù)

SQLite4 使用十進(jìn)制算數(shù)做所有的數(shù)字計算. SQLite4 從不使用C類型的double或者float(除了在double和內(nèi)部十進(jìn)制表示之間轉(zhuǎn)換時使用語接口例程中).  相反,所有數(shù)字值在內(nèi)部表示方式為一個帶有3位數(shù)字的基于10的指數(shù)的18位十進(jìn)制數(shù).  這一表示方式的特性有:

  •     即使是在缺乏對于IEEE 754 binary64浮點(diǎn)數(shù)字支持的平臺上,其運(yùn)作起來也是可靠和兼容的.
  •     貨幣計算通??梢跃_的進(jìn)行,不需要四舍五入.
  •     任何有符號和無符號的64位整數(shù)都能被精確的表示.
  •     浮點(diǎn)數(shù)范圍和精確度超出了 IEEE 754 binary64 浮點(diǎn)數(shù).
  •     正無窮和負(fù)無窮以及 NaN (Not-a-Number) 都有良好的表示方式.

SQLite4 使得整型和浮點(diǎn)型數(shù)字之間沒有了差別. 不過期卻有精確和近似數(shù)之間的分別. 在 C/C++ 中, 整形數(shù)是精確的而浮點(diǎn)數(shù)是近似的. 但SQLite4并不一定如此.  浮點(diǎn)數(shù)字在SQLite4可以是精確的.  可以用64位表示的整型數(shù)在SQLite4中總是精確的,而大型的整型數(shù)則可能是近似的.

SQLite4 數(shù)字格式是面向內(nèi)部使用的.  數(shù)字可以在整型和double型之間轉(zhuǎn)換,用于輸入和輸出.  磁盤上的存儲空間需要從1到12位的SQLite4數(shù)字值, 這取決于其大小和重要的位數(shù).

3.5 外鍵約束和遞歸觸發(fā)器是默認(rèn)開啟的

外鍵約束在SQLite3的早期版本中是沒有的,并且他們默認(rèn)關(guān)閉了向后兼容的能力。但是外鍵約束一直是有效的,并且在SQLite4中是默認(rèn)打開的。所有的外鍵約束都是默認(rèn)延遲的,盡管他們能夠被定義成立即創(chuàng)建。但是,沒有有效的機(jī)制去觸發(fā)外鍵約束,不管是延遲創(chuàng)建還是立即創(chuàng)建。

SQLite3提供了遞歸觸發(fā)器,但是這只是在一個運(yùn)行時才有效的功能。在SQLite4中,所有的觸發(fā)器在所有的時間段里都是遞歸的。

3.6 明確的索引覆蓋

SQLite4 像 CREATE TABLE 語句中條件了一個可選的子句,該子句定義了在索引中重復(fù)的附加列信息. 這可以讓應(yīng)用程序開發(fā)者在SQLite4中無需使用任何花招就可以明確地創(chuàng)建覆蓋索引.  例如:

 

CREATE INDEX cover1 ON table1(a,b) COVERING(c,d);

上面的 cover1 索引可以在存儲引擎中用一個單一的查找操作來進(jìn)行形式如 "SELECT c,d FROM table1 WHERE a=?1 AND b=?2" 的查詢.  索引中如果沒有附加的 COVERING 子句, SQLite4 也許會在存儲引擎中做兩次操作; 一次操作基于a和b的值來找到主鍵,而第二次操作則基于主鍵來找到c和d的值. COVERING 子句使得c和d的值在索引中就可用,這意味著它們無需第二次查找就可以從索引中提取出來.


COVERING 語句上有一個變化:
 

CREATE INDEX cover2 ON table(x,y) COVERING ALL;

COVERING ALL 語句的意思是數(shù)據(jù)表的所有列都在索引中被重復(fù)一份,這就確保了原來的數(shù)據(jù)表永遠(yuǎn)也不會被訪問到,以完成一個使用了這個索引的查詢.  這種方法的缺點(diǎn),當(dāng)然就是信息重復(fù),而且因此讓數(shù)據(jù)庫文件更大.  但是通過在索引指標(biāo)上明確指定COVERING關(guān)閉,SQLite4可以讓應(yīng)用程序開發(fā)者權(quán)衡著從應(yīng)用程序中騰出空間和時間來讓其更加適用.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
阿v视频在线观看| 成人在线观看a| 色之综合天天综合色天天棕色| 国产精品视频网站在线观看| 亚洲美洲欧洲综合国产一区| 欧美 日韩 精品| 日韩av在线一区二区| 桃花岛成人影院| 日韩写真欧美这视频| 中文字幕在线日本| 日韩一级片免费看| 色噜噜狠狠狠综合欧洲色8| 免费看岛国视频在线观看| 日韩国产在线| 国产精品入口| 日韩欧美在线观看| 性欧美办公室18xxxxhd| 久久九九热re6这里有精品| 爱爱视频免费在线观看| av高清在线免费观看| 亚洲成人av在线影院| 91国内免费在线视频| 日日夜夜综合| 97在线观看免费高| 国产ts人妖一区二区| 91精品国产91久久综合桃花| 91超碰在线播放| 成人综合av| 精品国产乱码久久久久久婷婷| 一区二区久久久| 一区二区不卡在线视频 午夜欧美不卡在| 天天操天天射天天| 天天综合天天| 色棕色天天综合网| 国产精品视频xxx| 久久成年人网站| 中日韩免费毛片| 黄色a级片免费| 欧美一级爆毛片| 网友自拍亚洲| 97国产精品免费视频| 懂色av中文字幕| 日本少妇一区| 黑人巨大精品一区二区在线| 成人综合网站| 亚洲视频免费一区| 精品国产乱码久久久久久樱花| 国产欧美久久久精品影院| 国产麻豆精品一区| 毛片基地网站| 91福利在线观看视频| 色播久久人人爽人人爽人人片视av| 国产日韩在线免费观看| 色综合久久久久久久久久久| 99ri国产在线| 在线免费av片| 国产精品一区二区三区在线| 中文字幕欧美人与畜| 国产午夜亚洲精品午夜鲁丝片| 欧美成人免费在线观看| 中文字幕日本视频| 黄色精品网站| 国产男女无遮挡猛进猛出| 亚洲日本网址| 欧美激情一级二级| 国产精品乱战久久久| av网站有哪些| 国产成人精品无码播放| 日韩av网址在线| 在线观看视频色潮| 国产精品一区二区三区av| 99久久777色| 宅男av一区二区三区| av大全在线| 91精品久久香蕉国产线看观看| 日韩高清不卡一区| 五月天久久综合网| 亚洲成人午夜在线| 亚洲欧美成aⅴ人在线观看| jizzjizzjizz国产| 在线一区二区日韩| 小嫩嫩12欧美| 色播久久人人爽人人爽人人片视av| 日本爱爱网站| 色综合咪咪久久网| 九色精品高清在线播放| 国产又粗又猛视频免费| 俄罗斯嫩小性bbwbbw| 熟妇人妻一区二区三区四区| 欧美猛男gaygay网站| 亚洲www免费| 一本综合久久| 成人黄色图片网站| 欧美性色黄在线视频| 丰满人妻一区二区三区53号| 视频一区二区三区免费观看| 精品亚洲免a| 欧美三级韩国三级日本三斤在线观看| 国产原创在线播放| 手机免费观看av| 欧美日韩一二三四五区| 国产999在线| 92国产精品观看| 狂野欧美性猛交| 一区二区三区精品视频在线| 精品久久久久久无码国产| 日韩电影大片中文字幕| 亚洲高清在线免费观看| 69久久久久久| 91成人在线观看喷潮教学| 国产草草影院ccyycom| 97超碰人人爱| 久草福利资源在线视频| 国模私拍国内精品国内av| 欧美视频一区在线观看| 欧美精品久久久久久久久久丰满| 亚洲福利视频二区| 国外成人免费在线播放| 亚洲一品av免费观看| 欧美私人网站| 免费99视频| 日韩国产欧美视频| 婷婷精品久久久久久久久久不卡| 91av视频在线| 久久午夜色播影院免费高清| 自拍偷拍一区二区三区| 精品亚洲乱码一区二区| 一区二区三区免费视频网站| 日韩av资源网| 高清国产在线观看| 久草在线新视觉| 国产网址在线观看| 欧美午夜精品一区二区三区| 国产男女猛烈无遮挡91| 亚洲美女在线国产| 久久久99精品免费观看| 欧美精品一区二区蜜臀亚洲| 佐山爱痴汉视频一区二区三区| 国产在线中文字幕| 久久亚洲一级片| 最新日韩欧美| ass大特写| 91精品国产闺蜜国产在线闺蜜| 久久亚洲av午夜福利精品一区| 久久综合偷偷噜噜噜色| 在线观看av免费| 国产精品麻豆视频| 久久成人精品视频| 国产精品久久久久久久久久久久久久| 久久精品亚洲天堂| 全亚洲最色的网站在线观看| 日韩精品影视| 亚洲一区二区三区四区五区| 成人在线免费看黄| 亚洲国产综合av| 欧美色欧美亚洲另类七区| 岛国中文字幕在线| 亚洲天堂av女优| 自拍av在线| 欧美在线观看不卡| 无码精品人妻一区二区三区影院| 你真棒插曲来救救我在线观看| 亚洲free性xxxx护士hd| 亚洲精品人成| 亚洲美女视频在线观看| 夫妇交换中文字幕| 中文字幕在线看视频国产欧美在线看完整| 91av久久久| 日本私人网站在线观看| 人人干人人爱人人爱| 免费看黄视频网站| 四虎成人精品在永久在线观看| 亚洲电影在线一区二区三区| 丰满少妇高潮在线观看| 美日韩一区二区三区| 性欧美猛交videos| 欧美在线看片a免费观看| 精品无吗乱吗av国产爱色| 人妻与黑人一区二区三区| 天堂网在线最新版www中文网| 韩日中文字幕| 91精品久久久久久综合乱菊| a免费在线观看| 深夜福利网站在线观看| 日本片在线看| 国产精品免费在线播放| 毛片一区二区三区| 欧美亚洲日本在线| 免费成人深夜夜行网站| 日韩国产欧美精品在线| 2020国产精品小视频| 欧美性猛交xxxx免费看久久| www.jizz在线观看| 2021国产精品久久精品| 精品国产乱码久久久久久果冻传媒| 无套内谢大学处破女www小说| 国产在线精品一区二区夜色| 国产精品久久久久久一区二区| 麻豆av一区二区三区久久| 欧美日韩成人在线一区| 国产中文字幕免费观看| a黄色在线观看| 日本在线观看a| 亚洲在线免费观看| 亚洲自拍偷拍色片视频| 亚洲精品久久久久久无码色欲四季| 熟女熟妇伦久久影院毛片一区二区| 成人国产精品免费| 91精品成人| 亚洲国产果冻传媒av在线观看| 久久香蕉精品香蕉| 91精品韩国| 国产精品白丝久久av网站| 国产一区二区三区四区五区加勒比| 中文字幕2019第三页| 老熟妇仑乱一区二区av| 亚洲伊人色欲综合网| 免费看日产一区二区三区| 国产a∨精品一区二区三区不卡| 99久久综合国产精品二区| av福利在线观看| 亚洲精品成人一区| 成人av二区| 97超碰在线播放| 欧美日韩一区二区三区四区在线观看| 成人欧美精品久久久久影院| 国产在线观看免费视频软件| 日韩—二三区免费观看av| 久久电影中文字幕| 欧美三级不卡| 日本一级黄色大片| 亚洲国产一区二区三区高清| 91高清免费观看| 欧美成人3dxxxx| 久久综合色播五月| 国产欧美日韩专区发布| 日本午夜精品视频在线观看| www.99re.av| 欧美日韩伦理一区二区| 最近中文字幕免费mv2018在线| 国产偷窥女洗浴在线观看亚洲| 奇米精品一区二区三区在线观看一| 精品中文字幕视频| 亚洲区精品久久一区二区三区| 浮力国产第一页| 欧美hdfree性xxxx| 99精品在线观看| 日本高清一区二区视频| 视频在线99| 欧美.com| 日韩在线观看一区| 国产哺乳奶水91在线播放| 欧美 国产 精品| 美女脱光内衣内裤视频久久影院| 东京一区二区| 345成人影院| 欧区一欧区二欧区三| 欧美精品18videosex性欧美| 欧美专区在线观看一区| 精品a在线观看| 国产精品久免费的黄网站| 国产亚洲精品美女| 欧美视频国产视频| 91久久久久久久久久久久久久| 久9re热视频这里只有精品| 波多野结衣中文字幕久久| 国产人成在线视频| 国产精品久久久久久久免费| 青春草在线观看| 美女100%无挡| 直接在线观看的三级网址| 欧美日产国产成人免费图片| 久久成人av网站| 粉嫩aⅴ一区二区三区| 免费理论片在线观看播放老| 色一情一区二区| 精品国产一区二区三区久久久狼牙| 日本高清黄色片| 国产一区美女| 永久免费黄色软件| 99精品视频在线观看| 97久久精品人人爽人人爽蜜臀| 欧美日韩性生活片| 亚洲欧美日韩一级| 在线观看自拍| 欧美国产精品va在线观看| 久久久av亚洲男天堂| 国产激情视频网站| 亚洲一二三四在线观看| 精品久久久视频| 黄色成人一级片| 欧美色图麻豆| 亚洲国产精一区二区三区性色| 欧美另类极品videosbest最新版本| 久久夜色撩人精品| 韩国三级日本三级少妇99| 国产精品免费免费| 中文字幕中文乱码欧美一区二区| 26uuu色噜噜精品一区| 99久久免费精品国产72精品九九| 视频一区二区视频| 国产成人一区二区三区影院| 亚洲精品乱码久久久久久蜜桃欧美| 亚洲一区中文在线| 一区二区三区精品在线| 国产自摸综合网| 亚洲天堂男人av| 日本视频网站在线观看| 精品久久久久久久久久久久包黑料| 久久蜜桃香蕉精品一区二区三区| 国内外成人在线| 无遮挡在线观看| 国产在视频一区二区三区吞精| 国模一区二区三区私拍视频| 亚洲精品一区二区三区影院| 国产欧美精品日韩| www.超碰在线| 欧美 日本 亚洲| 欧美mv日韩mv国产网站app| 一区二区自拍偷拍| 亚洲图片小说综合| 欧美日韩久久婷婷| 国产精品久久久视频| 午夜影院欧美| 在线播放av网址| 久久久久久久网| 偷拍视频一区二区| 国产亚洲欧美日韩一区二区|