1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      mysql讀提交怎么實現(xiàn),mysql讀已提交

      關(guān)于mySql 中樂觀鎖與讀已提交(事務(wù)隔離級別)的搭配使用問題!!求大神帶飛!

      術(shù)式之后皆為邏輯,一切皆為需求和實現(xiàn)。希望此文能從需求、現(xiàn)狀和解決方式的角度幫大家理解隔離級別。

      創(chuàng)新互聯(lián)是一家專業(yè)從事網(wǎng)站制作、成都做網(wǎng)站的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)站制作公司,創(chuàng)新互聯(lián)依托的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!

      隔離級別的產(chǎn)生

      在串型執(zhí)行的條件下,數(shù)據(jù)修改的順序是固定的、可預(yù)期的結(jié)果,但是并發(fā)執(zhí)行的情況下,數(shù)據(jù)的修改是不可預(yù)期的,也不固定,為了實現(xiàn)數(shù)據(jù)修改在并發(fā)執(zhí)行的情況下得到一個固定、可預(yù)期的結(jié)果,由此產(chǎn)生了隔離級別。

      所以隔離級別的作用是用來平衡數(shù)據(jù)庫并發(fā)訪問與數(shù)據(jù)一致性的方法。

      事務(wù)的4種隔離級別

      READ UNCOMMITTED ? ? ? 未提交讀,可以讀取未提交的數(shù)據(jù)。READ COMMITTED ? ? ? ? 已提交讀,對于鎖定讀(select with for update 或者 for share)、update 和 delete 語句, ? ? ? ? ? ? ? ? ? ? ? InnoDB 僅鎖定索引記錄,而不鎖定它們之間的間隙,因此允許在鎖定的記錄旁邊自由插入新記錄。 ? ? ? ? ? ? ? ? ? ? ? Gap locking 僅用于外鍵約束檢查和重復(fù)鍵檢查。REPEATABLE READ ? ? ? ?可重復(fù)讀,事務(wù)中的一致性讀取讀取的是事務(wù)第一次讀取所建立的快照。SERIALIZABLE ? ? ? ? ? 序列化

      在了解了 4 種隔離級別的需求后,在采用鎖控制隔離級別的基礎(chǔ)上,我們需要了解加鎖的對象(數(shù)據(jù)本身間隙),以及了解整個數(shù)據(jù)范圍的全集組成。

      數(shù)據(jù)范圍全集組成

      SQL 語句根據(jù)條件判斷不需要掃描的數(shù)據(jù)范圍(不加鎖);

      SQL 語句根據(jù)條件掃描到的可能需要加鎖的數(shù)據(jù)范圍;

      以單個數(shù)據(jù)范圍為例,數(shù)據(jù)范圍全集包含:(數(shù)據(jù)范圍不一定是連續(xù)的值,也可能是間隔的值組成)

      1. 數(shù)據(jù)已經(jīng)填充了整個數(shù)據(jù)范圍:(被完全填充的數(shù)據(jù)范圍,不存在數(shù)據(jù)間隙)

      整形,對值具有唯一約束條件的數(shù)據(jù)范圍 1~5 ,

      已有數(shù)據(jù)1、2、3、4、5,此時數(shù)據(jù)范圍已被完全填充;

      整形,對值具有唯一約束條件的數(shù)據(jù)范圍 1 和 5 ,

      已有數(shù)據(jù)1、5,此時數(shù)據(jù)范圍已被完全填充;

      2. 數(shù)據(jù)填充了部分?jǐn)?shù)據(jù)范圍:(未被完全填充的數(shù)據(jù)范圍,是存在數(shù)據(jù)間隙)

      整形的數(shù)據(jù)范圍 1~5 ,

      已有數(shù)據(jù) 1、2、3、4、5,但是因為沒有唯一約束,

      所以數(shù)據(jù)范圍可以繼續(xù)被 1~5 的數(shù)據(jù)重復(fù)填充;

      整形,具有唯一約束條件的數(shù)據(jù)范圍 1~5 ,

      已有數(shù)據(jù) 2,5,此時數(shù)據(jù)范圍未被完全填充,還可以填充 1、3、4 ;

      3. 數(shù)據(jù)范圍內(nèi)沒有任何數(shù)據(jù)(存在間隙)

      如下:

      整形的數(shù)據(jù)范圍 1~5 ,數(shù)據(jù)范圍內(nèi)當(dāng)前沒有任何數(shù)據(jù)。

      在了解了數(shù)據(jù)全集的組成后,我們再來看看事務(wù)并發(fā)時,會帶來的問題。

      無控制的并發(fā)所帶來的問題

      并發(fā)事務(wù)如果不加以控制的話會帶來一些問題,主要包括以下幾種情況。

      1. 范圍內(nèi)已有數(shù)據(jù)更改導(dǎo)致的:

      更新丟失:當(dāng)多個事務(wù)選擇了同一行,然后基于最初選定的值更新該行時,

      由于每個事物不知道其他事務(wù)的存在,最后的更新就會覆蓋其他事務(wù)所做的更新;

      臟讀: 一個事務(wù)正在對一條記錄做修改,這個事務(wù)完成并提交前,這條記錄就處于不一致狀態(tài)。

      這時,另外一個事務(wù)也來讀取同一條記錄,如果不加控制,

      第二個事務(wù)讀取了這些“臟”數(shù)據(jù),并據(jù)此做了進(jìn)一步的處理,就會產(chǎn)生提交的數(shù)據(jù)依賴關(guān)系。

      這種現(xiàn)象就叫“臟讀”。

      2. 范圍內(nèi)數(shù)據(jù)量發(fā)生了變化導(dǎo)致:

      不可重復(fù)讀:一個事務(wù)在讀取某些數(shù)據(jù)后的某個時間,再次讀取以前讀過的數(shù)據(jù),

      卻發(fā)現(xiàn)其讀出的數(shù)據(jù)已經(jīng)發(fā)生了改變,或者某些記錄已經(jīng)被刪除了。

      這種現(xiàn)象就叫“不可重復(fù)讀”。

      幻讀:一個事務(wù)按相同的查詢條件重新讀取以前檢索過的數(shù)據(jù),

      卻發(fā)現(xiàn)其他事務(wù)插入了滿足其查詢條件的新數(shù)據(jù),這種現(xiàn)象稱為“幻讀”。

      可以簡單的認(rèn)為滿足條件的數(shù)據(jù)量變化了。

      因為無控制的并發(fā)會帶來一系列的問題,這些問題會導(dǎo)致無法滿足我們所需要的結(jié)果。因此我們需要控制并發(fā),以實現(xiàn)我們所期望的結(jié)果(隔離級別)。

      MySQL 隔離級別的實現(xiàn)

      InnoDB 通過加鎖的策略來支持這些隔離級別。

      行鎖包含:

      Record Locks

      索引記錄鎖,索引記錄鎖始終鎖定索引記錄,即使表中未定義索引,

      這種情況下,InnoDB 創(chuàng)建一個隱藏的聚簇索引,并使用該索引進(jìn)行記錄鎖定。

      Gap Locks

      間隙鎖是索引記錄之間的間隙上的鎖,或者對第一條記錄之前或者最后一條記錄之后的鎖。

      間隙鎖是性能和并發(fā)之間權(quán)衡的一部分。

      對于無間隙的數(shù)據(jù)范圍不需要間隙鎖,因為沒有間隙。

      Next-Key Locks

      索引記錄上的記錄鎖和索引記錄之前的 gap lock 的組合。

      假設(shè)索引包含 10、11、13 和 20。

      可能的next-key locks包括以下間隔,其中圓括號表示不包含間隔端點,方括號表示包含端點:

      (負(fù)無窮大, 10] ? ?(10, 11] ? ?(11, 13] ? ?(13, 20] ? ?(20, 正無窮大) ? ? ? ?對于最后一個間隔,next-key將會鎖定索引中最大值的上方,

      左右滑動進(jìn)行查看

      "上確界"偽記錄的值高于索引中任何實際值。

      上確界不是一個真正的索引記錄,因此,實際上,這個 next-key 只鎖定最大索引值之后的間隙。

      基于此,當(dāng)獲取的數(shù)據(jù)范圍中,數(shù)據(jù)已填充了所有的數(shù)據(jù)范圍,那么此時是不存在間隙的,也就不需要 gap lock。

      對于數(shù)據(jù)范圍內(nèi)存在間隙的,需要根據(jù)隔離級別確認(rèn)是否對間隙加鎖。

      默認(rèn)的 REPEATABLE READ 隔離級別,為了保證可重復(fù)讀,除了對數(shù)據(jù)本身加鎖以外,還需要對數(shù)據(jù)間隙加鎖。

      READ COMMITTED 已提交讀,不匹配行的記錄鎖在 MySQL 評估了 where 條件后釋放。

      對于 update 語句,InnoDB 執(zhí)行 "semi-consistent" 讀取,這樣它會將最新提交的版本返回到 MySQL,

      以便 MySQL 可以確定該行是否與 update 的 where 條件相匹配。

      總結(jié)延展:

      唯一索引存在唯一約束,所以變更后的數(shù)據(jù)若違反了唯一約束的原則,則會失敗。

      當(dāng) where 條件使用二級索引篩選數(shù)據(jù)時,會對二級索引命中的條目和對應(yīng)的聚簇索引都加鎖;所以其他事務(wù)變更命中加鎖的聚簇索引時,都會等待鎖。

      行鎖的增加是一行一行增加的,所以可能導(dǎo)致并發(fā)情況下死鎖的發(fā)生。

      例如,

      在 session A 對符合條件的某聚簇索引加鎖時,可能 session B 已持有該聚簇索引的 Record Locks,而 session B 正在等待 session A 已持有的某聚簇索引的 Record Locks。

      session A 和 session B 是通過兩個不相干的二級索引定位到的聚簇索引。

      session A 通過索引 idA,session B通過索引 idB 。

      當(dāng) where 條件獲取的數(shù)據(jù)無間隙時,無論隔離級別為 rc 或 rr,都不會存在間隙鎖。

      比如通過唯一索引獲取到了已完全填充的數(shù)據(jù)范圍,此時不需要間隙鎖。

      間隙鎖的目的在于阻止數(shù)據(jù)插入間隙,所以無論是通過 insert 或 update 變更導(dǎo)致的間隙內(nèi)數(shù)據(jù)的存在,都會被阻止。

      rc 隔離級別模式下,查詢和索引掃描將禁用 gap locking,此時 gap locking 僅用于外鍵約束檢查和重復(fù)鍵檢查(主要是唯一性檢查)。

      rr 模式下,為了防止幻讀,會加上 Gap Locks。

      事務(wù)中,SQL 開始則加鎖,事務(wù)結(jié)束才釋放鎖。

      就鎖類型而言,應(yīng)該有優(yōu)化鎖,鎖升級等,例如rr模式未使用索引查詢的情況下,是否可以直接升級為表鎖。

      就鎖的應(yīng)用場景而言,在回放場景中,如果確定事務(wù)可并發(fā),則可以考慮不加鎖,加快回放速度。

      鎖只是并發(fā)控制的一種粒度,只是一個很小的部分:

      從不同場景下是否需要控制并發(fā),(已知無交集且有序的數(shù)據(jù)的變更,MySQL 的 MTS 相同前置事務(wù)的多事務(wù)并發(fā)回放)

      并發(fā)控制的粒度,(鎖是一種邏輯粒度,可能還存在物理層和其他邏輯粒度或方式)

      相同粒度下的優(yōu)化,(鎖本身存在優(yōu)化,如IX、IS類型的優(yōu)化鎖)

      粒度加載的安全性能(如獲取行鎖前,先獲取頁鎖,頁鎖在執(zhí)行獲取行鎖操作后即釋放,無論是否獲取成功)等多個層次去思考并發(fā)這玩意。

      Mysql到底是怎么實現(xiàn)MVCC的

      Mysql到底是怎么實現(xiàn)MVCC的

      Mysql到底是怎么實現(xiàn)MVCC的?這個問題無數(shù)人都在問,但google中并無答案,本文嘗試從Mysql源碼中尋找答案。

      在Mysql中MVCC是在Innodb存儲引擎中得到支持的,Innodb為每行記錄都實現(xiàn)了三個隱藏字段:

      6字節(jié)的事務(wù)ID(DB_TRX_ID )

      7字節(jié)的回滾指針(DB_ROLL_PTR)

      隱藏的ID

      6字節(jié)的事物ID用來標(biāo)識該行所述的事務(wù),7字節(jié)的回滾指針需要了解下Innodb的事務(wù)模型。

      1. Innodb的事務(wù)相關(guān)概念

      為了支持事務(wù),Innbodb引入了下面幾個概念:

      redo log

      redo log就是保存執(zhí)行的SQL語句到一個指定的Log文件,當(dāng)Mysql執(zhí)行recovery時重新執(zhí)行redo log記錄的SQL操作即可。當(dāng)客戶端執(zhí)行每條SQL(更新語句)時,redo log會被首先寫入log buffer;當(dāng)客戶端執(zhí)行COMMIT命令時,log buffer中的內(nèi)容會被視情況刷新到磁盤。redo log在磁盤上作為一個獨立的文件存在,即Innodb的log文件。

      undo log

      與redo log相反,undo log是為回滾而用,具體內(nèi)容就是copy事務(wù)前的數(shù)據(jù)庫內(nèi)容(行)到undo buffer,在適合的時間把undo buffer中的內(nèi)容刷新到磁盤。undo buffer與redo buffer一樣,也是環(huán)形緩沖,但當(dāng)緩沖滿的時候,undo buffer中的內(nèi)容會也會被刷新到磁盤;與redo log不同的是,磁盤上不存在單獨的undo log文件,所有的undo log均存放在主ibd數(shù)據(jù)文件中(表空間),即使客戶端設(shè)置了每表一個數(shù)據(jù)文件也是如此。

      rollback segment

      回滾段這個概念來自O(shè)racle的事物模型,在Innodb中,undo log被劃分為多個段,具體某行的undo log就保存在某個段中,稱為回滾段。可以認(rèn)為undo log和回滾段是同一意思。

      Innodb提供了基于行的鎖,如果行的數(shù)量非常大,則在高并發(fā)下鎖的數(shù)量也可能會比較大,據(jù)Innodb文檔說,Innodb對鎖進(jìn)行了空間有效優(yōu)化,即使并發(fā)量高也不會導(dǎo)致內(nèi)存耗盡。

      對行的鎖有分兩種:排他鎖、共享鎖。共享鎖針對對,排他鎖針對寫,完全等同讀寫鎖的概念。如果某個事務(wù)在更新某行(排他鎖),則其他事物無論是讀還是寫本行都必須等待;如果某個事物讀某行(共享鎖),則其他讀的事物無需等待,而寫事物則需等待。通過共享鎖,保證了多讀之間的無等待性,但是鎖的應(yīng)用又依賴Mysql的事務(wù)隔離級別。

      隔離級別

      隔離級別用來限制事務(wù)直接的交互程度,目前有幾個工業(yè)標(biāo)準(zhǔn):

      - READ_UNCOMMITTED:臟讀

      - READ_COMMITTED:讀提交

      - REPEATABLE_READ:重復(fù)讀

      - SERIALIZABLE:串行化

      Innodb對四種類型都支持,臟讀和串行化應(yīng)用場景不多,讀提交、重復(fù)讀用的比較廣泛,后面會介紹其實現(xiàn)方式。

      2. 行的更新過程

      下面演示下事務(wù)對某行記錄的更新過程:

      1. 初始數(shù)據(jù)行

      F1~F6是某行列的名字,1~6是其對應(yīng)的數(shù)據(jù)。后面三個隱含字段分別對應(yīng)該行的事務(wù)號和回滾指針,假如這條數(shù)據(jù)是剛INSERT的,可以認(rèn)為ID為1,其他兩個字段為空。

      2.事務(wù)1更改該行的各字段的值

      當(dāng)事務(wù)1更改該行的值時,會進(jìn)行如下操作:

      用排他鎖鎖定該行

      PHP 中mysql如何實現(xiàn)事務(wù)提交

      事務(wù)就是指對數(shù)據(jù)庫的多次修改,要么全部成功,要么全部失敗,不能出現(xiàn)部分修改成功,部分修改失敗的情況。

      PHP下操作mysql數(shù)據(jù)庫要實現(xiàn)事務(wù)提交,需注意以下方面:

      1, 數(shù)據(jù)庫表存儲引擎類型設(shè)置為innoDB。默認(rèn)的mysql表采用MYISAM引擎,是不支持事務(wù)的,因此要采用以下語句變更:

      mysql alter table ‘table_name’ engine=innodb;

      2,PDO對象設(shè)置要設(shè)置errmode為Exception,否則第16行SQL執(zhí)行出錯,語句也不會跳到catch段去rollback, 而是繼續(xù)向下執(zhí)行直到commit。

      如何使用mysql 兩階段提交

      第階段:Java面向象編程

      1.Java基本數(shù)據(jù)類型與表達(dá)式支循環(huán)

      2.StringStringBuffer使用、則表達(dá)式

      3.面向象抽象封裝繼承態(tài)類與象象初始化收;構(gòu)造函數(shù)、this關(guān)鍵字、參數(shù)傳遞程、static關(guān)鍵字、內(nèi)部類Java垃極收機制Javadoc介紹

      4.象實例化程、覆蓋、final關(guān)鍵字、抽象類、接口、繼承優(yōu)點缺點剖析;象態(tài)性:類父類間轉(zhuǎn)換、抽象類接口態(tài)應(yīng)用、態(tài)帶處

      5.Java異處理異機制原理

      6.用設(shè)計模式:Singleton、Template、Strategy模式

      7.JavaAPI介紹:種基本數(shù)據(jù)類型包裝類SystemRuntime類DateDateFomat類等

      8.Java集合介紹:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等用集合類API

      9.Java

      I/O輸入輸流:FileFileRandomAccess類字節(jié)流InputStreamOutputStream字符流Reader

      Writer及相應(yīng)實現(xiàn)類IO性能析字節(jié)字符轉(zhuǎn)化流包裝流概念及用包裝類計算機編碼

      10.Java高級特性:反射、代理泛型

      11.線程原理:何程序創(chuàng)建線程(Thread、Runnable)線程安全問題線程同步線程間通訊、死鎖

      12.Socket網(wǎng)絡(luò)編程

      第二階段:Java

      Web發(fā)

      1.Java解析XML文件DOM4J

      2.MySql數(shù)據(jù)庫應(yīng)用、表連接查詢應(yīng)用

      3.JspServlet應(yīng)用

      4.Http協(xié)議解析

      5.Tomcat服務(wù)器應(yīng)用配置

      6.WebService服務(wù)配置應(yīng)用

      第三階段:android UI編程

      1、Android發(fā)環(huán)境搭建:Android介紹Android發(fā)環(huán)境搭建第Android應(yīng)用程序Android應(yīng)用程序目錄結(jié)構(gòu)

      2、Android初級控件使用:

      TextView控件使用

      Button控件使用

      EditText控件使用

      ImageView使用

      RadioButton使用

      Checkbox使用

      Menu使用

      3、Android高級控件使用:

      Autocompletion使用

      ListView使用

      GridView使用

      Adapter使用

      Spinner使用

      Gallary使用

      ScrollView使用

      4、框與菜單使用:

      Dialog基本概念

      AlertDialog使用

      DatePickerDialog使用

      Menu使用

      自定義Menu實現(xiàn)

      5、控件布局:

      線性布局使用

      相布局使用

      表格布局使用

      6、Acitivity管理:

      AndroidManifest.xml文件作用

      Intent使用

      使用Intent傳遞數(shù)據(jù)

      啟Activity

      IntentFilter使用

      Activity Group使用

      7、自定義控件實現(xiàn):

      自定義ListView實現(xiàn)

      折疊ListView使用

      自定義Adapter實現(xiàn)

      自定義View實現(xiàn)

      態(tài)控件布局實現(xiàn)

      第四階段:android網(wǎng)絡(luò)編程與數(shù)據(jù)存儲

      1、基于Android平臺HTTP通訊:

      Http協(xié)議顧

      Apache Commons 工具包介紹

      使用Get向服務(wù)器提交數(shù)據(jù)

      解析服務(wù)器響應(yīng)數(shù)據(jù)

      使用POST向服務(wù)器提交數(shù)據(jù)實現(xiàn)

      向服務(wù)器提交非文本數(shù)據(jù)實現(xiàn)

      使用Http協(xié)議實現(xiàn)線程載

      使用Http協(xié)議實現(xiàn)斷點續(xù)傳

      2、Android數(shù)據(jù)存儲技術(shù):

      SQLite3數(shù)據(jù)庫簡介

      SQL語句顧

      SQLite3編程接口介紹

      SQLite3事務(wù)管理

      SQLite3游標(biāo)使用

      SQLite3性能析

      訪問SDCard

      訪問SharedPreferences

      3、ContentProvider使用:ContentProvider實現(xiàn)共享數(shù)據(jù)、URI

      解析與UriMatcher、ContentUris使用、使用ContentResolver操作ContentProvider、

      ContentProvider監(jiān)聽Android異步操作:Handler使用;異步任務(wù)基本概念;AsyncTask使用

      第五階段:android手機硬件管理

      1、圖及定位技術(shù):GPS簡介;LocationManager使用;Google Map添加標(biāo)記;查詢某附近建筑;使用Google Map實現(xiàn)點點導(dǎo)航

      2、傳器使用:向、加速度(重力)、光線、磁場、距離、溫度等傳器使用

      3、近場通信技術(shù):NFC技術(shù)簡介;NFC技術(shù)用場景介紹;NFC技術(shù)實現(xiàn)

      4、媒體管理技術(shù):MediaPlayer使用

      5、觸摸屏技術(shù):手勢識別;點觸摸技術(shù)

      第六階段:Android圖形編程技術(shù)

      1、圖形處理基礎(chǔ):2D圖形編程基礎(chǔ);

      2、點、線、面等基本圖形元素繪制;

      3、Android畫框架簡介;

      4、位移畫實現(xiàn);

      5、淡入淡畫實現(xiàn);

      6、旋轉(zhuǎn)畫實現(xiàn);

      7、Matrix使用

      第七階段:Android游戲發(fā)

      1、Android游戲發(fā):Android游戲發(fā)概述;

      2、SurfaceView使用;

      3、物理球技術(shù);

      4、碰撞檢測技術(shù);

      5、圖片、文字背景音樂等資源使用;

      6、游戲引擎基礎(chǔ)概念;

      7、Cocoa2d-Android引擎使用;

      8、OpenGL ES使用

      mysql數(shù)據(jù)庫 事務(wù)提交怎么處理

      1.普通事務(wù)

      以 begin / start transaction 開始,commit / rollback 結(jié)束的事務(wù)。或者是帶有保存點 savepoint 的事務(wù)。

      2. 鏈?zhǔn)绞聞?wù)

      一個事務(wù)在提交的時候自動將上下文傳給下一個事務(wù),也就是說一個事務(wù)的提交和下一個事務(wù)的開始是原子性的,下一個事務(wù)可以看到上一個事務(wù)的處理結(jié)果。MySQL 的鏈?zhǔn)绞聞?wù)靠參數(shù) completion_type 控制,并且回滾和提交的語句后面加上 work 關(guān)鍵詞。

      3. 嵌套事務(wù)

      有多個 begin / commit / rollback 這樣的事務(wù)塊的事務(wù),并且有父子關(guān)系。子事務(wù)的提交完成后不會真的提交,而是等到父事務(wù)提交才真正的提交。

      4. 自治事務(wù)

      內(nèi)部事務(wù)的提交不隨外部事務(wù)的影響,一般用作記錄內(nèi)部事務(wù)的異常情況。MySQL 不支持自治事務(wù),但是某些場景可以用 MySQL 的插件式引擎來變相實現(xiàn)。


      新聞標(biāo)題:mysql讀提交怎么實現(xiàn),mysql讀已提交
      瀏覽地址:http://ef60e0e.cn/article/dsceghd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        鄱阳县| 卢湾区| 长子县| 岳阳县| 洛川县| 宁海县| 普洱| 石台县| 房山区| 宁陵县| 漯河市| 富蕴县| 江都市| 敦化市| 三穗县| 宝山区| 台州市| 云林县| 南投县| 沾化县| 台山市| 蓝山县| 吉首市| 乐业县| 柘城县| 新和县| 湘西| 阳春市| 阜城县| 南木林县| 黔南| 九台市| 聂拉木县| 武穴市| 竹溪县| 搜索| 卢氏县| 大城县| 镇康县| 通辽市| 扎兰屯市|