<kbd id="fugzo"></kbd>
<pre id="fugzo"></pre>
    1. <fieldset id="fugzo"><style id="fugzo"></style></fieldset>
      <center id="fugzo"></center>
    2. 哑剧盖章,电视剧折腰免费观看全集,亮剑3gp下载,秘密访客,泰剧为你着迷,古城童话,食物链无删减,大鱼海棠

      SQL優(yōu)化

      時間:2024-09-09 12:19:13 SQL

      SQL優(yōu)化大全

        SQL是最重要的關(guān)系數(shù)據(jù)庫操作語言,并且它的影響已經(jīng)超出數(shù)據(jù)庫領(lǐng)域,得到其他領(lǐng)域的重視和采用,如人工智能領(lǐng)域的數(shù)據(jù)檢索,第四代軟件開發(fā)工具中嵌入SQL的語言等。那么SQL怎么優(yōu)化?一起來看看優(yōu)化步驟吧!

        1. 優(yōu)化SQL步驟

        1. 通過 show status和應(yīng)用特點(diǎn)了解各種 SQL的執(zhí)行頻率

        通過 SHOW STATUS 可以提供服務(wù)器狀態(tài)信息,也可以使用 mysqladmin extende d-status 命令獲得。 SHOW STATUS 可以根據(jù)需要顯示 session 級別的統(tǒng)計結(jié)果和 global級別的統(tǒng)計結(jié)果。

        如顯示當(dāng)前session: SHOW STATUS like "Com_%"; 全局級別:show global status;

        以下幾個參數(shù)對 Myisam 和 Innodb 存儲引擎都計數(shù):

        1. Com_select 執(zhí)行 select 操作的次數(shù),一次查詢只累加 1 ;

        2. Com_insert 執(zhí)行 insert 操作的次數(shù),對于批量插入的 insert 操作,只累加一次 ;

        3. Com_update 執(zhí)行 update 操作的次數(shù);

        4. Com_delete 執(zhí)行 delete 操作的次數(shù);

        以下幾個參數(shù)是針對 Innodb 存儲引擎計數(shù)的,累加的算法也略有不同:

        1. Innodb_rows_read select 查詢返回的行數(shù);

        2. Innodb_rows_inserted 執(zhí)行 Insert 操作插入的行數(shù);

        3. Innodb_rows_updated 執(zhí)行 update 操作更新的行數(shù);

        4. Innodb_rows_deleted 執(zhí)行 delete 操作刪除的行數(shù);

        通過以上幾個參數(shù),可以很容易的了解當(dāng)前數(shù)據(jù)庫的應(yīng)用是以插入更新為主還 是以查詢操作為主,以及各種類型的 SQL大致的執(zhí)行比例是多少。對于更新操作的計 數(shù),是對執(zhí)行次數(shù)的計數(shù),不論提交還是回滾都會累加。

        對于事務(wù)型的應(yīng)用,通過 Com_commit 和 Com_rollback 可以了解事務(wù)提交和回 滾的情況,對于回滾操作非常頻繁的數(shù)據(jù)庫,可能意味著應(yīng)用編寫存在問題。此外,以下幾個參數(shù)便于我們了解數(shù)據(jù)庫的基本情況:

        1. Connections 試圖連接 Mysql 服務(wù)器的次數(shù)

        2. Uptime 服務(wù)器工作時間

        3. Slow_queries 慢查詢的次數(shù)

        2. 定位執(zhí)行效率較低的SQL語句

        可以通過以下兩種方式定位執(zhí)行效率較低的 SQL 語句:

        1. 可以通過慢查詢?nèi)罩径ㄎ荒切﹫?zhí)行效率較低的 sql 語句,用 --log-slow-queries[=file_name] 選項(xiàng)啟動時, mysqld 寫一個包含所有執(zhí)行時間超過long_query_time 秒的 SQL 語句的日志文件。可以鏈接到管理維護(hù)中的相關(guān)章節(jié)。

        2. 使用 show processlist查看當(dāng)前MYSQL的線程, 命令慢查詢?nèi)罩驹诓樵兘Y(jié)束以后才紀(jì)錄,所以在應(yīng)用反映執(zhí)行效率出現(xiàn)問題的時候查 詢慢查詢?nèi)罩静⒉荒芏ㄎ粏栴},可以使用 show processlist 命令查看當(dāng)前 MySQL 在進(jìn)行的線程,包括線程的狀態(tài),是否鎖表等等,可以實(shí)時的查看 SQL 執(zhí)行情況, 同時對一些鎖表操作進(jìn)行優(yōu)化。

        3. 通過EXPLAIN 分析低效 SQL的執(zhí)行計劃:

        通過以上步驟查詢到效率低的 SQL 后,我們可以通過 explain 或者 desc 獲取MySQL 如何執(zhí)行 SELECT 語句的信息,包括 select 語句執(zhí)行過程表如何連接和連接 的次序。

        2. MySQL索引

        1. mysql如何使用索引

        索引用于快速找出在某個列中有一特定值的行。對相關(guān)列使用索引是提高SELECT 操作性能的最佳途徑。

        查詢要使用索引最主要的條件是查詢條件中需要使用索引關(guān)鍵字,如果是多列 索引,那么只有查詢條件使用了多列關(guān)鍵字最左邊的前綴時(前綴索引),才可以使用索引,否則 將不能使用索引。

        下列情況下, Mysql 不會使用已有的索引:

        1、如果 mysql 估計使用索引比全表掃描更慢,則不使用索引。例如:如果 key_part 1均勻分布在 1 和 100 之間,下列查詢中使用索引就不是很好:

        SELECT * FROM table_name where key_part1 > 1 and key_part1 < 90

        2、如果使用 heap 表并且 where 條件中不用=索引列,其他 > 、 < 、 >= 、 <= 均不使 用索引(MyISAM和innodb表使用索引);

        3、使用or分割的條件,如果or前的條件中的列有索引,后面的列中沒有索引,那么涉及到的索引都不會使用。

        4、如果創(chuàng)建復(fù)合索引,如果條件中使用的列不是索引列的第一部分;(不是前綴索引)

        4、如果 like 是以%開始;

        5、對 where 后邊條件為字符串的一定要加引號,字符串如果為數(shù)字 mysql 會自動轉(zhuǎn) 為字符串,但是不使用索引。

        2. 查看索引使用情況

        如果索引正在工作, Handler_read_key 的值將很高,這個值代表了一個行被索引值讀的次數(shù),很低的值表明增加索引得到的性能改善不高,因?yàn)樗饕⒉唤?jīng)常使 用。

        Handler_read_rnd_next 的值高則意味著查詢運(yùn)行低效,并且應(yīng)該建立索引補(bǔ)救。這個值的含義是在數(shù)據(jù)文件中讀下一行的請求數(shù)。如果你正進(jìn)行大量的表掃描,

        該值較高。通常說明表索引不正確或?qū)懭氲牟樵儧]有利用索引。

        語法:

        mysql> show status like 'Handler_read%';

        3. 具體優(yōu)化查詢語句

        1. 查詢進(jìn)行優(yōu)化,應(yīng)盡量避免全表掃描

        對查詢進(jìn)行優(yōu)化,應(yīng)盡量避免全表掃描,首先應(yīng)考慮在 where 及 order by 涉及的列上建立索引

        .    嘗試下面的技巧以避免優(yōu)化器錯選了表掃描:

        ·   使用ANALYZE TABLEtbl_name為掃描的表更新關(guān)鍵字分布。

        ·   對掃描的表使用FORCEINDEX告知MySQL,相對于使用給定的索引表掃描將非常耗時。

        SELECT * FROM t1, t2 FORCE INDEX (index_for_column)   WHERE t1.col_name=t2.col_name;

        ·   用--max-seeks-for-key=1000選項(xiàng)啟動mysqld或使用SET max_seeks_for_key=1000告知優(yōu)化器假設(shè)關(guān)鍵字掃描不會超過1,000次關(guān)鍵字搜索。

        1). 應(yīng)盡量避免在 where 子句中對字段進(jìn)行 null 值判斷

        否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如:

        select id from t where num is null

        NULL對于大多數(shù)數(shù)據(jù)庫都需要特殊處理,MySQL也不例外,它需要更多的代碼,更多的檢查和特殊的索引邏輯,有些開發(fā)人員完全沒有意識到,創(chuàng)建表時NULL是默認(rèn)值,但大多數(shù)時候應(yīng)該使用NOT NULL,或者使用一個特殊的值,如0,-1作為默  認(rèn)值。

        不能用null作索引,任何包含null值的列都將不會被包含在索引中。即使索引有多列這樣的情況下,只要這些列中有一列含有null,該列    就會從索引中排除。也就是說如果某列存在空值,即使對該列建索引也不會提高性能。 任何在where子句中使用is null或is not null的語句優(yōu)化器是不允許使用索引的。

        此例可以在num上設(shè)置默認(rèn)值0,確保表中num列沒有null值,然后這樣查詢:

        select id    from t where num=0

        2). 應(yīng)盡量避免在 where 子句中使用!=或<>操作符

        否則將引擎放棄使用索引而進(jìn)行全表掃描。

        MySQL只有對以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些時候的LIKE。

        可以在LIKE操作中使用索引的情形是指另一個操作數(shù)不是以通配符(%或者_(dá))開頭的情形。例如:

        SELECT id FROM  t WHERE col LIKE 'Mich%'; #  這個查詢將使用索引,

        SELECT id FROM  t WHERE col  LIKE '%ike';   #這個查詢不會使用索引。

        3). 應(yīng)盡量避免在 where 子句中使用 or 來連接條件

        否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如:

        select id from t where num=10 or num=20

        可以 使用UNION合并查詢: select id from t where num=10 union all select id from t where num=20

        在某些情況下,or條件可以避免全表掃描的。

        1 .where 語句里面如果帶有or條件, myisam表能用到索引, innodb不行。

        2 .必須所有的or條件都必須是獨(dú)立索引

        mysql or條件可以使用索引而避免全表

        4) .in 和 not in 也要慎用,否則會導(dǎo)致全表掃描,

        如:

        select id from t where num in(1,2,3)

        對于連續(xù)的數(shù)值,能用 between 就不要用 in 了:

        Select id from t where num between 1 and 3

        5).下面的查詢也將導(dǎo)致全表掃描:

        select id from t where name like '%abc%' 或者

        select id from t where name like '%abc' 或者

        若要提高效率,可以考慮全文檢索。

        而select id from t where name like 'abc%' 才用到索引

        7). 如果在 where 子句中使用參數(shù),也會導(dǎo)致全表掃描。

        因?yàn)镾QL只有在運(yùn)行時才會解析局部變量,但優(yōu)化程序不能將訪問計劃的選擇推 遲到運(yùn)行時;它必須在編譯時進(jìn)行選擇。然而,如果在編譯時建立訪問計劃,變量的值還是未知的,因而無法作為索引選擇的輸入項(xiàng)。如下面語句將進(jìn)行全表掃描:

        select id from t where num=@num

        可以改為強(qiáng)制查詢使用索引: select id from t with(index(索引名)) where num=@num

        8). 應(yīng)盡量避免在 where 子句中對字段進(jìn)行表達(dá)式操作,

        這將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描。如:

        select id from t where num/2=100

        應(yīng)改為:  select id from t where num=100*2

        9). 應(yīng)盡量避免在where子句中對字段進(jìn)行函數(shù)操作,

        這將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描。如:

        select id from t where substring(name,1,3)='abc'   --name

        select id from t where datediff(day,createdate,'2005-11-30')=0--‘2005-11-30’

        生成的id 應(yīng)改為:

        select id from t where name like 'abc%'

        select id from t where createdate>='2005-11-30' and createdate<'2005-12-1'

        10).不要在 where 子句中的“=”左邊進(jìn)行函數(shù)、算術(shù)運(yùn)算或其他表達(dá)式運(yùn)算,

        否則系統(tǒng)將可能無法正確使用索引。

        11). 索引字段不是復(fù)合索引的前綴索引

        例如 在使用索引字段作為條件時,如果該索引是復(fù)合索引,那么必須使用到該索引中的第一個字段作為條件時才能保證系統(tǒng)使用該索引,否則該索引將不會被使用,并且應(yīng)盡可能的讓字段順序與索引順序相一致。

        2 .其他一些注意優(yōu)化:

        12). 不要寫一些沒有意義的查詢,

        如需要生成一個空表結(jié)構(gòu):

        select col1,col2 into #t from t where 1=0

        這類代碼不會返回任何結(jié)果集,但是會消耗系統(tǒng)資源的,應(yīng)改成這樣: create table #t(...)

        13). 很多時候用 exists 代替 in 是一個好的選擇:

        select num from a where num in(select num from b)

        用下面的語句替換:

        select num from a where exists(select 1 from b where num=a.num)

        14). 并不是所有索引對查詢都有效,

        SQL是根據(jù)表中數(shù)據(jù)來進(jìn)行查詢優(yōu)化的,當(dāng)索引列有大量數(shù)據(jù)重復(fù)時,SQL查詢可能不會去利用索引,如一表中有字段sex,male、female幾乎各一半,那么即使在sex上建了索引也對查詢效率起不了作用。

        15). 索引并不是越多越好,

        索引固然可以提高相應(yīng)的 select 的效率,但同時也降低了 insert 及 update 的效率,因?yàn)?insert 或 update 時有可能會重建索引,所以怎樣建索引需要慎重考慮,視具體情況而定。一個表的索引數(shù)最好不要超過6個,若太多則應(yīng)考慮一些不常使用到的列上建的索引是否有必要。

        16).應(yīng)盡可能的避免更新 clustered 索引數(shù)據(jù)列,

        因?yàn)?clustered 索引數(shù)據(jù)列的順序就是表記錄的物理存儲順序,一旦該列值改變將導(dǎo)致整個表記錄的順序的調(diào)整,會耗費(fèi)相當(dāng)大的資源。若應(yīng)用系統(tǒng)需要頻繁更新 clustered 索引數(shù)據(jù)列,那么需要考慮是否應(yīng)將該索引建為 clustered 索引。

        17).盡量使用數(shù)字型字段,

        若只含數(shù)值信息的字段盡量不要設(shè)計為字符型,這會降低查詢和連接的性能,并會增加存儲開銷。這是因?yàn)橐嬖谔幚聿樵兒瓦B接時會逐個比較字符串中每一個字符,而對于數(shù)字型而言只需要比較一次就夠了。

        18).盡可能的使用 varchar/nvarchar 代替 char/nchar ,

        因?yàn)槭紫茸冮L字段存儲空間小,可以節(jié)省存儲空間,其次對于查詢來說,在一個相對較小的字段內(nèi)搜索效率顯然要高些。

        19).最好不要使用"*"返回所有: select * from t ,

        用具體的字段列表代替“*”,不要返回用不到的任何字段。

        3. 臨時表的問題:

        20). 盡量使用表變量來代替臨時表。

        如果表變量包含大量數(shù)據(jù),請注意索引非常有限(只有主鍵索引)。

        21).避免頻繁創(chuàng)建和刪除臨時表,以減少系統(tǒng)表資源的消耗。

        22).臨時表并不是不可使用,

        適當(dāng)?shù)厥褂盟鼈兛梢允鼓承├谈行В纾?dāng)需要重復(fù)引用大型表或常用表中的某個數(shù)據(jù)集時。但是,對于一次性事件,最好使用導(dǎo)出表。

        23).在新建臨時表時,如果一次性插入數(shù)據(jù)量很大,那么可以使用 select into 代替 create table,避免造成大量 log ,以提高速度;

        如果數(shù)據(jù)量不大,為了緩和系統(tǒng)表的資源,應(yīng)先create table,然后insert。

        24). 如果使用到了臨時表,在存儲過程的最后務(wù)必將所有的臨時表顯式刪除,先 truncate table ,然后 drop table ,這樣可以避免系統(tǒng)表的較長時間鎖定。

        4. 游標(biāo)的問題:

        25).盡量避免使用游標(biāo),

        因?yàn)橛螛?biāo)的效率較差,如果游標(biāo)操作的數(shù)據(jù)超過1萬行,那么就應(yīng)該考慮改寫。

        26).使用基于游標(biāo)的方法或臨時表方法之前,

        應(yīng)先尋找基于集的解決方案來解決問題,基于集的方法通常更有效。

        27).與臨時表一樣,游標(biāo)并不是不可使用。

        對小型數(shù)據(jù)集使用 FAST_FORWARD 游標(biāo)通常要優(yōu)于其他逐行處理方法,尤其是在必須引用幾個表才能獲得所需的數(shù)據(jù)時。在結(jié)果集中包括“合計”的例程通常要比使用游標(biāo)執(zhí)行的速度快。如果開發(fā)時間允許,基于游標(biāo)的方法和基于集的方法都可以嘗試一下,看哪一種方法的效果更好。

        28).在所有的存儲過程和觸發(fā)器的開始處設(shè)置 SET NOCOUNT ON ,在結(jié)束時設(shè)置 SET NOCOUNT OFF 。

        無需在執(zhí)行存儲過程和觸發(fā)器的每個語句后向客戶端發(fā)送 DONE_IN_PROC 消息。

        5. 事務(wù)的問題:

        29).盡量避免大事務(wù)操作,提高系統(tǒng)并發(fā)能力。

        6. 數(shù)據(jù)量的問題

        30).盡量避免向客戶端返回大數(shù)據(jù)量,若數(shù)據(jù)量過大,應(yīng)該考慮相應(yīng)需求是否合理。

        7. COUNT優(yōu)化:

        31) count(*) 優(yōu)于count(1)和count(primary_key)

        很多人為了統(tǒng)計記錄條數(shù),就使用 count(1) 和 count(primary_key) 而不是 count(*) ,他們認(rèn)為這樣性能更好,其實(shí)這是一個誤區(qū)。對于有些場景,這樣做可能性能會更差,應(yīng)為數(shù)據(jù)庫對 count(*) 計數(shù)操作做了一些特別的優(yōu)化。

        32)count(column) 和 count(*) 是不一樣的

        這個誤區(qū)甚至在很多的資深工程師或者是 DBA 中都普遍存在,很多人都會認(rèn)為這是理所當(dāng)然的。實(shí)際上,count(column) 和 count(*) 是一個完全不一樣的操作,所代表的意義也完全不一樣。

        count(column) 是表示結(jié)果集中有多少個column字段不為空的記錄

        count(*) 是表示整個結(jié)果集有多少條記錄

        1)innodb引擎在統(tǒng)計方面和myisam是不同的,Myisam內(nèi)置了一個計數(shù)器,

        Count(*)在沒有查詢條件的情況下使用 select count(*) from table 的時候,Myisam直接可以從計數(shù)器中取出數(shù)據(jù)。而innodb必須全表掃描一次方能得到總的數(shù)量

        2. 但是當(dāng)有查詢條件的時候,兩者的查詢效率一致。

        4. 主鍵索引count(*)的時候之所以慢

        InnoDB引擎:

        [1]     數(shù)據(jù)文件和索引文件存儲在一個文件中,主鍵索引默認(rèn)直接指向數(shù)據(jù)存儲位置。

        [2]     二級索引存儲指定字段的索引,實(shí)際的指向位置是主鍵索引。當(dāng)我們通過二級索引統(tǒng)計數(shù)據(jù)的時候,無需掃描數(shù)據(jù)文件;而通過主鍵索引統(tǒng)計數(shù)據(jù)時,由于主鍵索引與數(shù)據(jù)文件存放在一起,所以每次都會掃描數(shù)據(jù)文件,所以主鍵索引統(tǒng)計沒有二級索引效率高。

        [3]     由于主鍵索引直接指向?qū)嶋H數(shù)據(jù),所以當(dāng)我們通過主鍵id查詢數(shù)據(jù)時要比通過二級索引查詢數(shù)據(jù)要快。

        l  MyAsm引擎

        [1]     該引擎把每個表都分為幾部分存儲,比如用戶表,包含user.frm,user.MYD和user.MYI。

        [2]     User.frm負(fù)責(zé)存儲表結(jié)構(gòu)

        [3]     User.MYD負(fù)責(zé)存儲實(shí)際的數(shù)據(jù)記錄,所有的用戶記錄都存儲在這個文件中

        [4]     User.MYI負(fù)責(zé)存儲用戶表的所有索引,這里也包括主鍵索引。

        8. 優(yōu)化order by語句

        基于索引的排序

        MySQL的弱點(diǎn)之一是它的排序。雖然MySQL可以在1秒中查詢大約15,000條記錄,但由于MySQL在查詢時最多只能使用一個索引。因此,如果WHERE條件已經(jīng)占用了索引,那么在排序中就不使用索引了,這將大大降低查詢的速度。我們可以看看如下的SQL語句:

        SELECT * FROM SALES WHERE NAME = “name” ORDER BY SALE_DATE DESC;

        在以上的SQL的WHERE子句中已經(jīng)使用了NAME字段上的索引,因此,在對SALE_DATE進(jìn)行排序時將不再使用索引。為了解決這個問題,我們可以對SALES表建立復(fù)合索引:

        ALTER TABLE SALES DROP INDEX NAME, ADD INDEX (NAME,SALE_DATE)

        這樣再使用上述的SELECT語句進(jìn)行查詢時速度就會大副提升。但要注意,在使用這個方法時,要確保WHERE子句中沒有排序字段,在上例中就是不能用SALE_DATE進(jìn)行查詢,否則雖然排序快了,但是SALE_DATE字段上沒有單獨(dú)的索引,因此查詢又會慢下來。

        在某些情況中, MySQL可以使用一個索引來滿足 ORDER BY子句,而不需要額外的排序。 where條件和order by使用相同的索引,并且order by 的順序和索引順序相 同,并且order by的字段都是升序或者都是降序。例如:下列sql可以使用索引。

        SELECT * FROM t1 ORDER BY key_part1,key_part2,... ;

        SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC, key_part2 DESC;

        SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 DESC;

        但是以下情況不使用索引:

        SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC ; --order by 的字段混合 ASC 和 DESC

        SELECT * FROM t1 WHERE key2=constant ORDER BY key1 ;-- 用于查詢行的關(guān)鍵字與 ORDER BY 中所使用的不相同

        SELECT * FROM t1 ORDER BY key1, key2 ;-- 對不同的關(guān)鍵字使用 ORDER BY :

        9. 優(yōu)化GROUP BY

        默認(rèn)情況下, MySQL 排序所有 GROUP BY col1 , col2 , .... 。查詢的方法如同在查詢中指定 ORDER BY col1 , col2 , ... 。如果顯式包括一個包含相同的列的 ORDER BY

        子句, MySQL 可以毫不減速地對它進(jìn)行優(yōu)化,盡管仍然進(jìn)行排序。如果查詢包括 GROUP BY 但你想要避免排序結(jié)果的消耗,你可以指定 ORDER BY NULL禁止排序。

        例如 :

        INSERT INTO foo  SELECT a, COUNT(*) FROM bar GROUP BY a ORDER BY NULL;

        10. 優(yōu)化 OR

        具體詳解看:mysql or條件可以使用索引而避免全表

        4. Explain解釋說明

        explain顯示了mysql如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優(yōu)化的查詢語句。

        使用方法,在select語句前加上explain就可以了:

        如:

        explain select surname,first_name form a,b where a.id=b.id

        分析結(jié)果形式如下:

        table |  type | possible_keys | key | key_len  | ref | rows | Extra

        EXPLAIN列的解釋:

        1 table:

        顯示這一行的數(shù)據(jù)是關(guān)于哪張表的

        2 type:

        這是重要的列,顯示連接使用了何種類型。從最好到最差的連接類型為:system、const、eg_reg、ref、ref_or_null、 range、indexhe、 ALL。

        system:表僅有一行(=系統(tǒng)表)。這是const聯(lián)接類型的一個特例

        const:(PRIMARY KEY或UNIQUE)

        表最多有一個匹配行,它將在查詢開始時被讀取。因?yàn)閮H有一行,在這行的列值可被優(yōu)化器剩余部分認(rèn)為是常數(shù)。

        const表很快,因?yàn)樗鼈冎蛔x取一次!

        const用于用常數(shù)值比較PRIMARY KEY或UNIQUE索引的所有部分時。

        在下面的查詢中,tbl_name可以用于const表:

        SELECT * from tbl_name WHERE primary_key=1;

        eq_reg:key

        對于每個來自于前面的表的行組合,從該表中讀取一行。這可能是最好的聯(lián)接類型,除了const類型。

        它用在一個索引的所有部分被聯(lián)接使用并且索引是UNIQUE或PRIMARY KEY。

        eq_ref可以用于使用= 操作符比較的帶索引的列。比較值可以為常量或一個使用在該表前面所讀取的表的列的表達(dá)式。

        在下面的例子中,MySQL可以使用eq_ref聯(lián)接來處理ref_tables:

        SELECT * FROM ref_table,other_table WHERE ref_table.key_column=other_table.column;

        SELECT * FROM ref_table,other_table WHERE ref_table.key_column_part1=other_table.column

        AND ref_table.key_column_part2=1;

        ref:key

        對于每個來自于前面的表的行組合,所有有匹配索引值的行將從這張表中讀取。如果聯(lián)接只使用鍵的最左邊的前綴,

        或如果鍵不是UNIQUE或PRIMARY KEY(換句話說,如果聯(lián)接不能基于關(guān)鍵字選擇單個行的話),則使用ref。

        如果使用的鍵僅僅匹配少量行,該聯(lián)接類型是不錯的。

        ref可以用于使用=或<=>操作符的帶索引的列。

        在下面的例子中,MySQL可以使用ref聯(lián)接來處理ref_tables:

        SELECT * FROM ref_table WHERE key_column=expr;

        SELECT * FROM ref_table,other_table WHERE ref_table.key_column=other_table.column;

        SELECT * FROM ref_table,other_table WHERE ref_table.key_column_part1=other_table.column

        AND ref_table.key_column_part2=1;

        ref_or_null:Or Is null

        該聯(lián)接類型如同ref,但是添加了MySQL可以專門搜索包含NULL值的行。在解決子查詢中經(jīng)常使用該聯(lián)接類型的優(yōu)化。

        在下面的例子中,MySQL可以使用ref_or_null聯(lián)接來處理ref_tables:

        SELECT * FROM ref_table WHERE key_column=expr OR key_column IS NULL;

        range:=、<>、>、>=、<、<=、IS NULL、<=>、BETWEEN或者IN

        只檢索給定范圍的行,使用一個索引來選擇行。key列顯示使用了哪個索引。

        key_len包含所使用索引的最長關(guān)鍵元素。在該類型中ref列為NULL。

        當(dāng)使用=、<>、>、>=、<、<=、IS NULL、<=>、BETWEEN或者IN操作符,用常量比較關(guān)鍵字列時,可以使用range:

        SELECT * FROM tbl_name WHERE key_column = 10;

        SELECT * FROM tbl_name WHERE key_column BETWEEN 10 and 20;

        SELECT * FROM tbl_name WHERE key_column IN (10,20,30);

        SELECT * FROM tbl_name WHERE key_part1= 10 AND key_part2 IN (10,20,30);

        indexhe:

        該聯(lián)接類型與ALL相同,除了只有索引樹被掃描。這通常比ALL快,因?yàn)樗饕募ǔ1葦?shù)據(jù)文件小。

        當(dāng)查詢只使用作為單索引一部分的列時,MySQL可以使用該聯(lián)接類型。

        ALL:

        對于每個來自于先前的表的行組合,進(jìn)行完整的表掃描。如果表是第一個沒標(biāo)記const的表,

        這通常不好,并且通常在它情況下很差。通常可以增加更多的索引而不要使用ALL,

        使得行能基于前面的表中的常數(shù)值或列值被檢索出。

        3 possible_keys :

        顯示可能應(yīng)用在這張表中的索引。如果為空,沒有可能的索引。可以為相關(guān)的域從WHERE語句中

        選擇一個合適的語句

        4 key :

        實(shí)際使用的索引。如果為NULL,則沒有使用索引。很少的情況下,MYSQL會選擇優(yōu)化不足的索引  。

        這種情況下,可以在SELECT語句中使用USEINDEX(indexname)來強(qiáng)制使用一個索引或者用IGNORE INDEX(indexname)來強(qiáng)制MYSQL忽略索引

        5key_len:

        使用的索引的長度。在不損失精確性的情況下,長度越短越好

        6 ref

        顯示索引的哪一列被使用了,如果可能的話,是一個常數(shù)

        7 rows

        MYSQL認(rèn)為必須檢查的用來返回請求數(shù)據(jù)的行數(shù) (掃描行的數(shù)量)

        8 Extra

        該列包含MySQL解決查詢的詳細(xì)信息

        關(guān)于MYSQL如何解析查詢的額外信息。將在表4.3中討論,但這里可以看到的壞的例子是Using temporary和Using filesort,

        意思MYSQL根本不能使用索引,結(jié)果是檢索會很慢

        extra列返回的描述的意義

        Distinct:

        一旦MYSQL找到了與行相聯(lián)合匹配的行,就不再搜索了

        Not exists :

        MYSQL優(yōu)化了LEFT JOIN,一旦它找到了匹配LEFT JOIN標(biāo)準(zhǔn)的行, 就不再搜索了

        面是一個可以這樣優(yōu)化的查詢類型的例子:

        SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;

        假定t2.id定義為NOT NULL。在這種情況下,MySQL使用t1.id的值掃描t1并查找t2中的行。

        如果MySQL在t2中發(fā)現(xiàn)一個匹配的行,它知道t2.id絕不會為NULL,并且不再掃描t2內(nèi)有相同的id值的行。

        換句話說,對于t1的每個行,MySQL只需要在t2中查找一次,無論t2內(nèi)實(shí)際有多少匹配的行。

        Range checked for each Record(index map:#)

        沒有找到理想的索引,因此對于從前面表中來的每一個行組合,MYSQL檢查使用哪個索引,并用它來從表中返回行。

        這是使用索引的最慢的連接之一

        MySQL沒有發(fā)現(xiàn)好的可以使用的索引,但發(fā)現(xiàn)如果來自前面的表的列值已知,可能部分索引可以使用。

        對前面的表的每個行組合,MySQL檢查是否可以使用range或index_merge訪問方法來索取行。

        關(guān)于適用性標(biāo)準(zhǔn)的描述參見7.2.5節(jié),“范圍優(yōu)化”和7.2.6節(jié),“索引合并優(yōu)化”,

        不同的是前面表的所有列值已知并且認(rèn)為是常量。這并不很快,但比執(zhí)行沒有索引的聯(lián)接要快得多。

        Using filesort

        看到這個的時候,查詢就需要優(yōu)化了。MYSQL需要進(jìn)行額外的步驟來發(fā)現(xiàn)如何對返回的行排序。

        它根據(jù)連接類型以及存儲排序鍵值和匹配條件的全部行的行指針來排序全部行

        Using index

        列數(shù)據(jù)是從僅僅使用了索引中的信息而沒有讀取實(shí)際的行動的表返回的,

        這發(fā)生在對表的全部的請求列都是同一個索引的部分的時候

        Using temporary

        看到這個的時候,查詢需要優(yōu)化了。這里,MYSQL需要創(chuàng)建一個臨時表來存儲結(jié)果,這通常發(fā)生在對不同的列集進(jìn)行ORDER BY上,而不是GROUP BY上

        Using where

        使用了WHERE從句來限制哪些行將與下一張表匹配或者是返回給用戶。如果不想返回表中的全部行,

        并且連接類型ALL或index,這就會發(fā)生,或者是查詢有問題

        Impossible WHERE noticed after reading const table...

      【SQL優(yōu)化】相關(guān)文章:

      oracle的sql語句01-21

      SQL語句的理解原則03-30

      SQL查詢語句大全04-25

      sql語句的各種模糊查詢03-30

      mysql SQL語句積累參考03-30

      執(zhí)行sql原理l分析03-30

      SQL中的單記錄函數(shù)03-30

      PHP防止SQL注入的例子03-15

      SQL語句中的正則表達(dá)示03-18

      主站蜘蛛池模板: 呕吐娃娃| 超人解放| 爱你所以离开你| 荣耀守则啄木鸟法版| 南充火车站| 爱情与灵药| 视频列表--蜜桃 - 17| 拾光的秘密| 济南战役| 露营地宋孝敏韩国| 我叔叔的女人| 加勒比女海盗2电影在线观看| 天魔异种| 麦乐迪和父亲争执电影| 南京照相馆| 逆流而上的你剧情| 《和部长出差的日子》| 加菲猫电影国语| 日本顶级RAPPER| 人间中毒无删减在线| 英语老师充足的奶水| 杨贵妃秘史完整播放| 《美国灭火宝贝2》演员表介绍 | 特殊使命全集| 无神之地| 高清观看【MIMK-023】用时间停止器来强| 蝴蝶行动电视剧全集30| 日本女律师的堕落在线观看| 妈妈2免费观看完整电视剧中文版 穿越时空的爱恋免费观看完整版 打雀英雄传 | 娼年完整 电影| 我主沉浮电视剧全集免费观看| 我们都是超能力者完整版电影| 烂赌夫斗烂赌妻 粤语| 花子小姐与倔强驱魔师| 张杰 这就是爱| 巴西农民宰猪时失手刺中大腿| 金银梅5普通话在线观看国语版免费| 花样男子全集| 牛群小品| 漫步云端 电影| 幸福触手可及收电视剧| 维修工人的艳遇中文无码| 哪吒之魔童闹海2在线观看| 爱她的理由第二季免费动漫| 瓜达卢佩玫瑰无删减下载| 傲世潜龙王东98集全| 高清《反叛的鲁路修》动漫| 剑在弦上| 妖精的尾巴45| 瓜达卢佩的玫瑰观看完整版| 锦月如歌电视剧大结局| 牧神记动漫在线观看全集免费播放| 人心俱乐部电视剧在线观看免费 | 武动乾坤之瑶魔乱舞| 伊波拉2病毒完整国语版免费 | 冰激凌怎么画最好看| 家族的秘密| 免费电影在线观看完整高清| 牡丹夜叉1987台湾版剧情简介| 韩国伦理电影需要爸爸的种子| 高清《抗战》40集免费观看| 青春有你第一季| 麦乐迪女超人在线观看| 如果我不曾见过太阳第二季| 花蝴蝶4大全免费多少集| 琪琪20岁以下| 断魂小丑3正片免费观看| 咱们结婚吧庆功会| 坎贝奇的《无憾》电影| 左手视频免费观看| 电影《需要爸爸播种美国》 | 超人钢铁之躯qvod| 需要爸爸播种的| 电影《马女》完整版观看| 危情谍战在线观看完整免费高清| 四个妇人精油和按摩电影| 星辰变超前点播| 睡美人1999版美国 | 李碧华鬼魅系列:迷离夜| 杰西简凌云壮志无删减| 绝世弃少逆袭:成传奇全集免费| 古田美穗| 哇嘎电影在线播放免费版| 以家人之名免费看| 水落石出第一部高清| 无名之辈电影高清免费| 快递员的特殊待遇2| 万万没想到番外| 青春爱火花| 美容院特珠待遇5| 高清《九重紫》在线观看电视剧| 九一麻花传媒剧mv免费| 轻佻寡妇电影完整版| 麻辣女宾| 和部长一起去出差旅日本电影叫什么名字 | 疯狂的足球高清| 伦理剧场黛比浪漫女家教| 电影大笑江湖| 我与黑帮大佬| 奇特的美发待遇2| 黑帮大佬和我说365天第一季| 年轻女教师5| 丰县新闻| 波野结衣全集种子| 佐罗满天星版被禁播原因| 日韩吃奶摸下AA片免费观看| 电影色魔王暴行处女术| 邻居家妻子 电影| 战马一号电影在线观看免费| 《医生的特殊治疗》4| 波奇亚电影在线观看| 激战丛林在线观看洛克帝希佛| 两个世界泰剧双男主电视剧在线看 | 欲望恋情| 光环 第一季| 丛林总动员| 新版娃娃脸9免费观看高清 | 平凡职业成就世界最强| 叶子楣个人3鸡片| 传家电视剧全集免费播放完整版| 扫黑电视剧在线观看| 家庭矛盾4麦乐迪在线| 电视剧迷雾重重| 最佳李顺心| 还珠格格燕儿翩翩飞| 春雨电影大全免费观看动画版| 白峰电视剧601免费播放| 福尔摩斯第二季| 猛男诞生记下载| 滚石30周年北京演唱会| 《秘密列车》电视剧| 隐形的帽子| 灵域电视剧免费观看全集在线| 《女超人麦乐迪》完整版 | 与龙共舞电影| 江湖少年诀电视剧免费观看| 美版HD古墓丽影| 犯罪心理第十八季| 女超人麦乐迪法国电影无删减版 | 保姆119全集下载| 亲爱的妈妈4无删减版| 杭州纵火案灵异事件| 一生一世电视剧免费观看西瓜影音| 壮志凌云2011大人版影院| 水萝拉日语中字在线| 外国电影爸爸的种子在线看| 《我要再来一次》电影免费播放| 阁楼大象| 《法国少女》满天星| 娼年完整 电影| 花子vs驱魔师完整免费在线观看| 美版花样男子| 欢迎来到王国韩剧免费观看| 泰国女子用氰化物谋杀13名债主| 海伦娜的影子电视剧| 《哪吒1:魔童降临》免费观看| 电影无人区完整| 误判粤语抢先版在线观看| 新乱世佳人9集吃奶视频| 宝贝低头看看我是怎么爱你| 妈妈母乳1-5H| 单身男女主题曲| 婚前试爱下载| 芦山县| 百妖谱第二季| 男人女人一愁愁愁全集免费看| 国产白嫩漂亮美女在线观看| 朴夏伦《传说的拉一大》下载| 奇妙儿媳妇苏玥是谁| 了不起的女孩免费观看| 胆小鬼一共多少集| 年轻的馊子8| 《被拒绝的爱》结局| 逆境电影高清免费完整版| 艾莉拉特满天星七个男子汉| 56集电视剧全部免费| 美国电影《需要爸爸播种2》在线观看 | 麦子交换| 《末日降临》动漫全集| 骑着鱼的猫电视剧免费观看| 一路向西完整版观看| 狙击精英之纳米危机| 黑人和女教师尝鲜| 女帝夺江山:拥美男入怀短剧全集| 美国禁忌三部曲满天星免费 | 黑夜彩虹粤语| 法国电影《女销售》的剧情简介| 南北妈打演员表| 麦乐迪的女超人在线观看完整免费| 抖音官网网页版| 爸爸快长大电视剧| 《唤醒》:凯登·克罗斯| 河南一家6口被杀 警方通报| 女版坎贝奇无删减在线看 | 好想好想和你在一起| 仇敌当前| 延禧攻略番外| 高清《缘之空| 觉醒年代 电视剧| 蜡笔小新中文版| tube8| 义胆群英| 外国做aj的电视剧| 电视剧怒放| 老婆8| 《古墓神蛇》| 年轻的女保险销售2 | 恨锁金瓶电影| 盯住你不放| 少年被虐绑着榨精18禁小说| 特殊的游泳池在线观看| 恋爱的发现 电视剧| 安娜卡列尼娜2012| 孤独一掷免费完整观看高清2023| 神医喜来乐下载| 南岸区| 鉴证实录2粤语| 白峰美羽无码| 警察故事3电影| 午夜寂寞影院全部视频列表安卓UC浏览器 | 少帅电视剧免费观看| 酒店1-80集| 韩剧命中注定我爱你| 凌云壮志(欧美)满天星小娅是谁演的 | 春草电视剧免费全集完整版| 韩版欺诈游戏| 浪漫女家教在线观看电影| 寄宿公寓在线观看完整版| 白雪公主纯肉H版版在线| qingchunqi| 遥控器控制女领导免费观看| 上错花骄嫁对郎| 电影《废都》国语免费播放| 电视剧钟点工们| 中森眀莱| 银魂126| 送春 阅读答案| 金瓶风月dvd国语版| 公安局长第四部| 多人轮换| 咱们结婚吧26| 商务旅行戴绿色帽的女老板电影| 剑来在线播放| xxxx美国在线观看| 迎风的青春电视剧免费观看全集| 韩国电影和部长一起出差| 三十而已免费观看完整版全集| 《需要爸爸播种子》免费观看在线播放_HD/未删减_1080P高清电影完整版 - 天堂 | 布兰迪《军事不当行为》2016免费播放 | 欲望血液vr| 道德的火焰| 台湾满天星在线观看台湾电影| 流浪的地球| 机动战士高达seed粤语 | 今日天晴宜爱你短剧免费观看| 恋爱捕手| 姐妹5高清韩剧播放| 《我要再来一次》电影免费播放| 最近好看的电视剧推荐| 寒武纪电视剧| 雾散之时短剧免费观看| 蛇姬恋泰剧未删减版本| 那年花开全集免费观看星辰| 当婚姻走到尽头| 许你浮生若梦电视剧全集免费观看| 红蓝3d| 佩奇小猪佩奇动画片免费观看| 夜行神龙第二季| 奇怪的美发沙拉龙中文配 | 《妻子的背叛》全集观看| 南京地铁事故| 如懿传高清| 黑白配国语在线播放免费观看 | 电视剧《心跳》| 年轻的母亲在线观看韩版| 少女骑士物语| 好奇害死猫| 你并不懂我歌词| 南少林三十六房| 伊比利亚三部曲在线观看| 中国刑警电视剧| 森林女王在线高清观看| 恶搞奥巴马演讲| 张翰不一样的美男子| 我想打死你| 杨恭如被污辱的图片| 美丽的桃子第4季| 蜡笔小新在线观看全集免费| 失忆后认错老公| 新生在线观看| 人间至味是清欢| 山河令35集免费看| 三国连太郎| 下女 完整版| 主君的太阳| 爱情公寓 第三季| 大头的小媳妇儿| 爱情面前谁怕谁剧情| 沉默的真相在线观看免费完整版| 玫瑰庄园| 奥尼尔跳舞| 许冠杰演唱会| 真探第二季在线观看完整版| 节点钥匙| 纨绔当爹短剧全集| 小巷人家电视剧观看| 《三大队》电视剧| 小斯亲口宣布离开篮网| 暮光之城 新月| 功夫小蝇下载| 《向日葵的绽放》动漫观看| 偷窥无罪吴彦祖| 富江系列| 在线播放丈夫被继子强暴,阴道紧绷的益女。住在高级住宅区的33岁人妻。每次被 | 黄金瞳免费观看完整版| 嫣语赋电视剧在线高清免费观看| 电视剧温柔的背后全集| 玉琳国师之再世情缘 | 心跳直播在线观看免费| 一一 电影| 多功能老婆在线观看| 冰剑的魔术师将要一世界动漫| 我想和你好好的 下载| 俞灏明其实我还好mv| 薄冰谍战电视剧全集免费播放| 嘘 国王在冬眠| 龙日一你死定了免费观看全集| 盗亦有道qvod| 《示范销售避孕套》剧情介绍| 喜耕田的故事第2部| 电影《特邀外卖员》播放| 萌宝寻爹:妈咪快跑全集免费| 3对1初体4| 山河令36集全集免费播放| 郝板栗七部曲免费观看 | 黑白配高清国语免费观看在线 | 电视剧燕赵刑警| 朋友的姐姐在线播放| 跑男十一季泰国免费观看| 美人为馅2| 我的罪恶人生在线观看| 女版第一滴血| 小姑子的味道2有翻译视频| 顾少的替嫁甜妻| 我爱神仙遮国语| 如虎添翼下一句怎么接| 《杰顿魔物娘》动漫在线看| 周杰伦女儿5岁近照| 校园的早晨舞蹈| 人肉市场电影| 借爸爸的种子电影| 电视剧秋蝉免费全集| 《和讨厌的部长出差》日本电影| 韩国电影空姐| 日本妈妈和儿子A级片| 美味的服务| 台版1987渔夫荒野史电影| 老爸的爱情全集在线观看| 《法国空乘4》免费完整版| 芈月传电视剧免费观看全集| 三妻四妾免费观看完整版高清,皇家女 | 甄嬛传46| 性解密无码| 案发现场第二部全集| 美国版本女儿国 3| 团鬼六地狱之门| 法国女版《壮志凌云》第三集| 美丽高解像粤语全集| 侄女的开发日期| 自制ipad| 千斤肉板栗1985| 平凡之路多少集| 金银梅10全集免费播放| 钓钩的绑法| 美姊妹 赤板栗 完整版| 白雪公主h| 人猿泰山hr版 1995| 搞笑一家人第2部| 赶尽杀绝百度影音| 相思树底说相思| 顶楼韩剧| 童军手册之僵尸启示录无删减| 电视剧扫黑风暴高清在线| 阿凡达:火与烬未删减| 贵州山歌有哪些| 爱探险的朵拉第二季| 《现在的是哪一个多闻! ?》| 战狼6高清国语免费| 花便当全集观看| 年轻的女教师3| 赤裸特工未删减完整在线观看国语| 毒医肥尸电影未删减版| 亲爱的仇敌全集免费观看| 私人的女性监狱| 九河龙蛇| 俄罗期。巨屌影院| 春心荡漾369| xL司令第二季无马赛免费观看高清| 美洲杯赛程2021| 郝板栗《姐妹》| 打工人的巅峰短剧全集| 跑男第十二季免费播放| 木下檀檀子免费观看平台| 假面骑士REVICE第五集| 日本妈妈和儿子A级片| 远离人群的地方| XXXX 美国| 强我 电影| 凌云壮志成人版在线观看| 九重紫电视剧哪里可以看| 空弹之森免费观看完整版| 高清维珍朋克:发条女孩未删减| 满天星女超人麦乐迪在线看| 朋友的老婆1| 美容室的待遇8免费| 大众女澡堂春光在线播放| 冰湖行动电影| 需要爸爸播种子三级在线观看| 增城地图| 叶子楣偷天宝鉴国语版百度云下载| 你是我的荣耀免费观看完整版西瓜| 新上门女婿手机免费观看| 心如刀割 陈洁仪| 爸爸的朋友2免费中字翻译木瓜| 武动乾坤 起点| 万古尊上短剧免费观看| 美国电影免费观看平台| 美国电影《炸天小姐》在线观看| 伪装者电视剧全集观看| 墨西哥呱达卢佩的玫瑰在线观看完整版| 蒂凡尼的早餐迅雷 下载| 新上任的女员工| 恶魔的艺术2邪降| 《外卖奇遇》完整版外| 二胡教程| 顾冠忠金瓶梅| 栀子花开电影| 女儿的朋友2韩国电影| 电影《干柴烈火》| 爱欲韩国电影| 女教师5完整版 | 爱在空气中第六集| 女朋友的妹妹电影| 信义大结局| 为什么来我家国语| 私人助理在线看| 仙逆第122集在线观看| 动漫《侄女开发日记》动漫免费观看| 滑稽时代国语高清| 激战丛林3女兵免费观看高清| 缘之空第一季在线观看免费完整| 免费韩国电影完整版在线观看| 泰坦尼克号1电影| 《巨人族的新娘》动漫免费观看| 高清《赛末点》完整版在线观看| 落跑甜心30集| 坏性:被强奸的妻子2| 全金属外壳 电影| 玩弄丰满的女学生在线观看 | 怀9胞胎女子丈夫决定减胎| 秘密身份短剧全集| 妖怪人间| 《牙医姐妹》完整版高清在线观看| 盗墓笔记电视剧资源| 1对2:初次体检电影| 凤凰军事观察室最新| 正阳门下全集在线观看| 爱人韩剧免费观看电视剧| 女人当官第一部免费观看| 大男孩电影| 寂静法师| 电影《需要爸爸播种》演员表介绍 | 出差期间未婚妻遭上司欺负电影在线 | 杨幂刘恺威盛夏晚晴天 | 电影丁度《开放的心》| 鲇川奈绪| xxxx.69| 甄嬛传电视剧免费全集在线观看| 电视剧南下| 玫瑰故事电视剧免费观看全集| 天衣美津| xl司令第一季动漫在线观看免| 捡到女高中生然后剃须动漫结局 | 利刃出鞘3未删减| 铜铜铜铿锵锵锵锵锵锵App下载| 有钱了小品| 克莱尔的《第一夫人》| 老男孩美国版电影完整版免费看| 隔壁的女孩2| 跟别人家的老公出轨| 空中飞人打一字| 韩国控制女上司| 哭悲在线观看| 台湾卖房女销售| 忍风战队神风侠| 《朋友年轻的妈妈》韩国| 电影便衣警察| 疯狂厨房| 女子私人监狱免费完整版观看| 敦煌夜谭| 丈夫的部下是我的初恋| 黑暗荣耀2无删减韩剧在线播放| 新水浒传第26集| 古惑仔5龙争虎斗| 肉欲横流| 鲁豫有约周星驰| 美容院的特殊待遇在线| 永不回头剧情介绍| 法国空姐3| 喜人奇妙夜2| 火红年华电视剧在线播放| 《租借女友》第一季| 地味变2未增删樱花米粒米粒| 斯巴达女版在线播放| 《和讨厌的社长出差旅》大结局短发| 非正式会谈第九季| 狂飙38集在线观看| 导火线国语高清下载| 安拉拉斋电影在线观看免费播放| 瑜伽起源真的很恶心| 麦乐迪满天星HD版| 韩国电影后宫| 365天今时之欲在线观看百度| 星迷宫| 韩剧浪漫满屋中文版| 罗丽星克莱尔迷宫HD版免费观看| 僵尸道长2下载| 秋瓷炫生死决断被删掉的5分钟| 阿远食味| 卖保险套的女销售完整版电影观看| 花样姐姐第一季免费完整版在线观看| 好雨时节吻戏| 刺客伍六七在线看| 瑜伽起源真的很恶心| 飞机上的性服务免费看| 交谊舞中四舞曲| 免费看斗罗大陆| 《红海行动》| 错位青春| 《中字》丝袜| 灵域第二季| 《飞翔女孩》满天星| 黑档案 东北第一黑帮覆灭记| 红色利剑电视剧| 四位按摩| 成为魔法少女完整版免费观看 | 17·3电影在线观看全集| 血色玫瑰2| 生化危机美剧| 圣特罗佩1982| 电影《功夫》国语免费观看| 特殊的治疗室1| 保镖李建文| 假面骑士铠武20| 妻子被黑人在丈夫面前欺负的电影| 盲战在线观看免费| 战狼6免费下载完整版国语高清电影 | 刺客567| 金刚在线观看| 钻石王老五的艰难爱情大结局| 五一趣事作文| 美景之屋6版本全集在线观看| 幸福满院电视剧| 黑白配免费观看高清国语| 金太狼的幸福生活2| 为奴12年| 理伦片巜金三角丛林| 女明星们的按摩师免费观看| 安斋拉拉| 阿盖尔神秘特工免费高清观看| 黑暗的欲望在线观看| 干妈在线| 欲望酒店 百度影音| 周弘《村姑》在线播放| 爱情公寓第2季| 长月无烬电视剧免费观看| 歼灭天际线1-24全集| 小日子全部免费播放电视剧| 清镇市| 年级的妈妈4电视剧| 男神爱上:暗恋成真全集免费| 满天星电影无删减完整版| 上海卫视六个主持人参加生日宴| 扫黑风暴在线观看全集| 海上繁花电视剧在线观看| 李桢航资料| 麦乐迪女超人在线播放| 霍比特人 百度影音| 余罪第一季免费观看全集| 《鱿鱼游戏:真人挑战赛 第二季》| 斗罗大陆178集| 法国空乘4在线| 小生怕怕2008| 蜡笔小新国语全集高清爱奇艺 | 我的最爱粤语高清| 美味快递员特殊待遇2免费观看| 熊出没之过年全集| 大河儿女 电视剧| 人与马电影免费观看完整版| 花朝秋月夜电视剧免费观看全集| 韩国金银梅| 牧野诡事之卸岭力士| 纯真博物馆全集观看| 漫威黑寡妇高清完整观看| 好先生 电视剧| 妈妈的职业5完整版结局在线| 漂流欲室快播| 独孤天下电视剧免费观看完整版| 舒服吗我厉不厉害| 空姐妻子的秘密第三季_第1集 | 我的妹妹哪有这么可爱!| 少年派2电视剧免费观看中文版 | 抵债的朋友麦子| 我的拿手好戏一一吃屎| 希特勒回来了| 对你的想象电影| 人走茶凉什么意思| 电影千金小姐赤子板栗免费观看| 爱情与灵药完整版| 美国娃娃脸4美版| 草鞋是船爸爸是帆| 电视剧浪漫满厨| 寻龙传说电影| 青草视频免费在线| 星克莱尔| 新疆教育厅原厅长带头编问题教材| 隔山之眼3免费完整版| 你是我的命运电视剧| 女超人满天星版麦乐迪马克斯免费观 | 怎样写请示报告| 《幸福来敲门》| 圣特佩罗斯的姑娘们| 妖精的尾巴45| 电影《灭火宝贝1》免费观看全集高清| 雅的拼音| 全知读者视角动漫免费观看| 出差期间未婚妻遭前任多次欺负日剧 | 邻居姐姐| 动漫xlx| 超级飞侠第二季| 性暴行| 高清当哒当:邪视| 妻子的秘密 电视剧| 花与蛇牙医免费观看完整版 | 美国电影美丽小樱桃免费观看| 高清《老少恋》电影免费观看| 安吉丽娜朱莉 原罪| 专家称女生游泳私密贴是智商税| 得闲炒饭 下载| 终极一班3全集40高清| 日版花样男子| 天地无伦电影高清完整版在线观看 - 爱看电影 | 寒武纪电视剧| 免费观看电影克莱尔的迷宫| 我是刑警电视剧免费播放西瓜 | 我的妻子没有感情| 游戏王gorush| 肯德拉满天星美国版| 白川三姐妹| 学生POREN老师| 《混血儿摇篮曲》完整版| 婚词离曲电视剧| 瓜达卢佩的玫瑰墨西哥完整版| 女忍大桥未久无删减版电影| 火影忍者疾风传549| 战狼10免费完整电影在线观看高清 | 霍林郭勒市| 你养我小我养你老全集免费观看| 如何剥石榴| 美容院特殊待遇3D在线观看| 浪姐3免费观看全集在线| 突围行动剧情| 《售楼女王》朱莉安妮| 海豚爱上猫结局| 何以笙箫默在线看免费西瓜影院| 爆火短剧单亲妈妈| 上海皇帝之岁月风云| 荣誉守则电影在线观看免费版| 恐怖游泳馆大直和艾丽在水池| 漂亮的保姆韩国完整版免费| 济公传 郭德纲2013| 小鹏奇啪行| overflower第1集到第8集免费观看| 不可饶恕 电影| 绅士的品格 手机| 《伊波拉病毒》2| 白色请人家| 情深深雨蒙蒙36| 牙医姐妹在线观看视频全集 | 《爱我几何》完整版| 大宅门第二部全集| 特区爱奴百度影音| 中字HD丈夫的下属的背景资料| 绽放的许开心 电视剧 在线观看 | 第九禁区| 湖北张磊最新的视频| 种鬼电影| 守护天使国语版| 360大佬爱上我| 不平凡之路电视剧免费观看| 电影春心荡漾| 3对1:2人一次性体检4| 电视剧少年白马醉春风全集免费观看| 漂亮女人完整版在线观看| 我和房东在做爰电影| 《迷案奇踪》电影| 妻子的反攻| 钟点工们电视剧| 高清《人生导师》电影在线观看免费| 《茂盛的森林》电影在线观看 | 电影欲望之花| 希特勒回来了| 男女一起愁愁愁免费观看高清完整版电视剧| 带球跑宝:虐渣超神全集免费| 热辣滚烫在线观看电影免费播放| 伯爵满天星在线观看| 双肥临门| 从裸开始| 怪医黑杰克| 任达华的三级| 1—5集普通话版免费播放下载| 决战枭雄| 中国机长 下载| 我的健身锻炼3| 性治疗医生| 全职高手动漫在线观看| 女战狼10高清完整版在线观看视频 | 异形舞台第一季在线观看| 铿铿铿锵锵锵锵高清免费观看 | 为你千千万万短剧68集| 周弘版《村枝》mv免费观看| 小猎奇小猪佩奇25集视频| 字圣传奇| 0verflower第一季免费观看| 爱情有点蓝| 祈今朝电视剧免费观看全集完整版| 黑白配HD1080完整版高清一| 佳澄果穗| 原神旅行者插雷电将军的游戏| 公公之孚手1| 你们一个一个来我好痛| 雪珂电视剧免费全集在线观看| 男女一起免费观看高清完整版电视剧| 难哄电视剧观看全集在线播放| 安非他命电影| 公之浮之5HD高清版| 朴妮唛迅雷种子| 电视剧斗罗大陆在线观看| 漂亮妈妈7巴字| 南京城市频道| 陈小春电影全集国语| 《金牌销售的秘密3》| 《课外辅导女教师》电视剧| 爱情公寓首映礼| 神奇眼镜| 从失乐园开出的地铁| 证据原唱| 火山两个人没有打马赛电影| 不老山异事| 《亲爱的小孩》免费播放| 被义子侵犯不敢出声| 中华小子动画片全集免费观看| 尖峰时刻 3| 义姐不是良妈动漫| 天空之城钢琴曲教学| 斗罗大陆119集免费观看| 《营销技巧》未删减| 全肉高H短篇合集| 哦我的鬼神大人 电视剧| 永善县| 韩剧《蓝帽子》完整版| 济公活佛第二部全集| 永远忠诚| 胭脂霸王电视剧| 《overflower》动漫全集免费| 三大队电视剧在线免费观看| 喋血街头免费| 战狼6欧式少女全部视频| 山神电影完整版免费观看| 架设教程| 最初的相遇1到40集在线观看| 电影《纱荣子美容院的特殊待遇》| 罗丽星克莱尔《X迷宫》在线| 美国电影不忠| 古墓丽影法国版| 超人钢铁之躯| 茶馆妈妈 电影| 酒店1-90全集免费观看| 情深深雨蒙蒙49集免费观看西瓜 | 日本修理工的艳遇电影| 致我们终将逝去的青春演员表| 蜜雪冰城加盟 官网电话| 82板杨敏思版本1-5| 斗罗大陆第228集| 亮剑3gp下载| 插曲的痛| 浮城谜事下载| 极品美女在身边| 高清《女生宿舍2》| 《驯服小峓子3》完整版| 灭世魔帝| 金丝雀失忆后| 《性的暴行》越南电影| 3d蜜桃熟了| 犯罪现场调查迈阿密| 美版灭火宝贝2监狱在哪里| 屋顶上的吻| 麦迪逊河谷 第一季未删减| 点燃我温暖全集免费观看| 《水润人生》2刘智贤| 非凡中文| 按摩师一直触碰私处AV| 《无憾》满天星| 日本地震现场:房屋倒塌地表裂缝 | 闪电奇迹电影| 爱人 韩版| 伊宁县| 俘虏之锁在线观看完整版| 《怦然与你》| 美国战队| 私人教练1983年意大利| 这么多年电影免费观看| 电影在线观看完整版高清免费观看| 律师堕落日本| 白鸟ゆな| 落跑甜心30集| 女帝后宫:美男争风吃醋全集免费| 美国禁忌睫毛膏3推荐| 在线观看爱情睡醒了| 为奴十二年| 男人女人愁愁愁电视剧免费播放| 海伦娜的影子电视剧| 月上兔泰剧电视剧免费观看| 淫媒传奇| 美国禁忌三部曲满天星| 《好久不见》韩剧在线观看 | 爱的精灵 李丽珍| 逆流而上的你免费观看完整版 | 泰秘丽人会所| 女超人麦乐迪迅雷下载| 孙杨事件暴力抗检| 头脑特工队2电影| 歼灭天际1-40集免费观看西瓜视频| 《我的漂亮老师2》在线观看| 侦探语录免费观看完整版| 七哥电影网| 《女部长通宵的引诱》电影| 高清《痞子英雄》电影| 女儿的奶水| 美妙发型屋1| 情书免费|