成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL數(shù)據(jù)庫優(yōu)化中要用到哪些語句?

數(shù)據(jù)庫 MySQL
我們今天主要向大家講述的是MySQL數(shù)據(jù)庫優(yōu)化的實(shí)際操作以及MySQL數(shù)據(jù)庫優(yōu)化中的相關(guān)語句的推薦,以下就是文章的具體內(nèi)容描述。

以下的文章主要介紹的是MySQL數(shù)據(jù)庫優(yōu)化的實(shí)際操作以及相關(guān)推薦,前面我們也講過一些相關(guān)的優(yōu)化操作策略,我們今天就一起來看看MySQL數(shù)據(jù)庫優(yōu)化中Group BY 語句、 Order By語句 等。

優(yōu)化GROUP BY語句

默認(rèn)情況下,MySQL對所有GROUP BY col1,col2...的字段進(jìn)行排序。這與在查詢中指定ORDER BY col1,col2...類似。因此,如果顯式包括一個包含相同的列的ORDER BY子句,則對MySQL的實(shí)際執(zhí)行性能沒有什么影響。 如果查詢包括GROUP BY 但用戶想要避免排序結(jié)果的消耗,則可以指定ORDER By NULL禁止排序,例如:

引用

 

  1. explain select id, sum(moneys) from sales2 group by id \G   
  2. explain select id, sum(moneys) from sales2 group by id order by null \G  


你可以通過比較發(fā)現(xiàn)第一條語句會比第二句在Extra:里面多了Using filesort.而恰恰filesort是最耗時的。

MySQL數(shù)據(jù)庫優(yōu)化ORDER BY語句

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

例如:

引用

 

  1. SELECT * FROM t1 ORDER BY key_part1,key_part2,....:   
  2. SELECT * FROM t1 WHERE key_part1 = 1 ORDER BY key_part1 DESC,key_part2 DESC;   
  3. SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 DESC;  

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

引用

  1. SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;  

ORDER by的字段混合ASC 和 DESC

  1. SELECT * FROM t1 WHERE key2=constant ORDER BY key1;  

用于查詢行的關(guān)鍵字與ORDER BY 中所使用的不相同

  1. SELECT * FROM t1 ORDER BY key1, key2;  

對不同的關(guān)鍵字使用ORDER BY

 

MySQL數(shù)據(jù)庫優(yōu)化嵌套查詢

MySQL4.1開始支持SQL的子查詢。這個技術(shù)可以使用SELECT語句來創(chuàng)建一個單列的查詢結(jié)果,然后把這個查詢結(jié)果作為過濾條件用在另一個查詢中,使用子查詢可以一次性地完成多邏輯上需要多個步驟才能完成的SQL操作,同時也可以避免事務(wù)或者表鎖死,并且些起來也很容易。但是,有些情況下,子查詢可以被更有效的連接(JOIN)替代。
例如:

引用

 

  1. explain select * from sales2 where company_id not in(select id from company2) \G   
  2. explain select * from sales2 left join comany2 on sales2.company_id = 
    company2.id where sales2.company_id is null \G;   

 


第一句看起來比第二句更簡潔,但是第二句比第一就更快。因?yàn)槭褂肑OIN來完成這個查詢,速度比較快,尤其如果對compay2表中的id建立了索引的話,那么性能將會更好。那為什么在這種情況下使用JOIN會更有效率呢。因?yàn)镸ySQL不需要在內(nèi)存中創(chuàng)建臨時表來完成這個邏輯上需要兩個步驟的查詢工作。

優(yōu)化OR條件

對于含有OR的查詢子句,如果要利用索引,則OR之間的每個條件列都必須用到索引;如果沒有索引,則考慮增加索引。

使用SQL提示

SQL 提示(SQL HINT)是MySQL數(shù)據(jù)庫優(yōu)化數(shù)據(jù)庫的一個重要手段,簡單來說就是在SQL語句中加入一些人為的提示來達(dá)到優(yōu)化的操作的目的。
例如:

引用

 

  1. SELECT SQL_BUFFER_RESULTS * FROM ...  

這個語句將強(qiáng)制MySQL生成一個臨時結(jié)果集。只要臨時結(jié)果集生成后,所有表上的鎖定均被釋放。這能在遇到表鎖定問題時或者要花很長時間將結(jié)果傳給客戶端時所幫助,因?yàn)榭梢员M快釋放鎖資源,

下面是一些在MySQL中常用的SQL提示。

引用

1. USE INDEX
在查詢語句中表名的后面,添加USE INDEX 來提供希望MySQL去參考的索引列表,就可以讓MySQL不再考慮其他可用的索引。

引用

  1. explain select * from sales2 use index (ind_sales2_id) where id 3 \G;  

2. IGNORE INDEX

如果用戶只是單純地想讓MySQL忽略一個或者多個索引,則可以使用IGNORE INDEX 作為HINT

3. FORCE INDEX

為強(qiáng)制MySQL使用一個特定的索引,可在查詢中使用FORCE INDEX作為HINT。例如當(dāng)不強(qiáng)制使用索引的時候,因?yàn)閕d的值都是大于0的,因?yàn)镸ySQL會默認(rèn)進(jìn)行全表掃描,而不使用索引。例如:

引用

 

  1. expalin select * from sales2 where id > 0 \G;  

但是,當(dāng)使用FORCE INDEX進(jìn)行提示時,即便使用索引的效率不是很高,MySQL還是選擇使用了索引,這是MySQL留給用戶的一個自行選擇執(zhí)行計(jì)劃的權(quán)利。加入FORCE INDEX提示后在執(zhí)行上面的SQL

引用

 

  1. explain select * from sales2 force index(index_sales2_id) where id > 0 \G;  



 

責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-06-12 10:49:12

2010-08-16 13:36:11

連接DB2數(shù)據(jù)庫

2010-06-17 16:30:23

SQL Server數(shù)

2010-06-11 17:36:46

MySQL語句

2010-08-19 14:31:46

DB2數(shù)據(jù)庫

2010-05-14 14:12:58

MySQL數(shù)據(jù)庫優(yōu)化

2011-03-03 17:56:52

MySQL數(shù)據(jù)庫優(yōu)化

2010-06-13 13:35:06

MySQL數(shù)據(jù)庫優(yōu)化

2010-10-21 11:35:45

恢復(fù)SQL Serve

2011-03-08 08:49:55

MySQL優(yōu)化單機(jī)

2018-03-30 14:30:10

數(shù)據(jù)庫SQL語句性能優(yōu)化

2018-03-30 13:59:22

數(shù)據(jù)庫SQL語句性能優(yōu)化

2010-04-20 09:06:25

Oracle優(yōu)化

2010-05-05 10:37:40

Oracle優(yōu)化查詢

2013-01-04 10:00:12

MySQL數(shù)據(jù)庫數(shù)據(jù)庫查詢優(yōu)化

2021-12-27 09:52:43

數(shù)據(jù)庫優(yōu)化SQL

2016-12-12 13:07:57

數(shù)據(jù)庫優(yōu)化SQL

2010-05-21 09:13:01

MySQL數(shù)據(jù)庫查詢

2019-04-02 10:36:17

數(shù)據(jù)庫MySQL優(yōu)化方法

2010-06-01 13:20:45

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品福利视频 | 91人人看| 精品一区二区三区不卡 | 精品国产精品三级精品av网址 | 嫩草伊人| 91视频国产区 | caoporn地址| 精品在线一区二区 | 国产成人免费在线 | 日本a级大片 | 日韩在线不卡 | 国产不卡在线观看 | www.久久国产精品 | 亚洲三区在线观看 | 91爱爱·com | 三级免费毛片 | 国产成人久久精品 | 成人免费看 | 亚洲视频免费观看 | 毛片一级片 | 欧美色a v | 在线免费看毛片 | 久久精品成人热国产成 | 日韩电影一区二区三区 | 蜜桃视频在线观看免费视频网站www | 在线日韩 | 日韩一区二区不卡 | 日韩在线小视频 | avmans最新导航地址 | 视频在线观看一区二区 | 久久久久久久久久久久久九 | 日韩不卡一区二区 | h免费观看 | 一区二区精品视频 | 精品一区二区三区不卡 | 欧美一级做性受免费大片免费 | 国产成人一区在线 | 欧美一级二级在线观看 | 国产亚洲精品美女久久久久久久久久 | 亚洲国产一区二区三区在线观看 | xxx国产精品视频 |