国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - mysql數據庫優化需要遵守的原則

mysql數據庫優化需要遵守的原則

2019-12-14 15:41MYSQL教程網 Mysql

這是我在網上看到的一篇不錯的mysql數據庫優化文章,拿出來和大家分享,希望可以幫助你們

這是我在網上看到的一篇不錯的mysql數據庫優化文章,內容說的很全! 
1、使用索引來更快地遍歷表 
缺省情況下建立的索引是非群集索引,但有時它并不是最佳的。在非群集索引下,數據在物理上隨機存放在數據頁上。合理的索引設計要建立在對各種查詢的分析和預測上。一般來說: 
a.有大量重復值、且經常有范圍查詢( > ,< ,> =,< =)和order by、group by發生的列,可考慮建立群集索引; 
b.經常同時存取多列,且每列都含有重復值可考慮建立組合索引; 
c.組合索引要盡量使關鍵查詢形成索引覆蓋,其前導列一定是使用最頻繁的列。索引雖有助于提高性能但不是索引越多越好,恰好相反過多的索引會導致系統低效。用戶在表中每加進一個索引,維護索引集合就要做相應的更新工作。 
2、在海量查詢時盡量少用格式轉換 
3、ORDER BY和GROPU BY:使用ORDER BY和GROUP BY短語,任何一種索引都有助于SELECT的性能提高。 
4、任何對列的操作都將導致表掃描,它包括數據庫函數、計算表達式等等,查詢時要盡可能將操作移至等號右邊。 
5、IN、OR子句常會使用工作表,使索引失效。如果不產生大量重復值,可以考慮把子句拆開。拆開的子句中應該包含索引。 
6、只要能滿足你的需求,應盡可能使用更小的數據類型:例如使用MEDIUMINT代替INT 
7、盡量把所有的列設置為NOT NULL,如果你要保存NULL,手動去設置它,而不是把它設為默認值。 
8、盡量少用VARCHAR、TEXT、BLOB類型 
9、如果你的數據只有你所知的少量的幾個。最好使用ENUM類型 
10、正如graymice所講的那樣,建立索引。 
以下是我做的一個實驗,可以發現索引能極大地提高查詢的效率: 
我有一個會員信息表users,里邊有37365條用戶記錄: 
在不加索引的時候進行查詢: 
sql語句A: 
代碼: 

復制代碼代碼如下:


select * from users where username like '%許%'; 


在Mysql-Front中的8次查詢時長為:1.40,0.54,0.54,0.54,0.53,0.55,0.54 共找到960條記錄 
sql語句B: 
代碼: 

復制代碼代碼如下:


select * from users where username like '許%'; 


在Mysql-Front中的8次查詢時長為:0.53,0.53,0.53,0.54,0.53,0.53,0.54,0.54 共找到836條記錄 
sql語句C: 
代碼: 

復制代碼代碼如下:


select * from users where username like '%許'; 


在Mysql-Front中的8次查詢時長為:0.51,0.51,0.52,0.52,0.51,0.51,0.52,0.51 共找到7條記錄 
為username列添加索引: 
代碼: 

復制代碼代碼如下:


create index usernameindex on users(username(6)); 


再次查詢: 
sql語句A: 
代碼: 

復制代碼代碼如下:


select * from users where username like '%許%'; 


在Mysql-Front中的8次查詢時長為:0.35,0.34,0.34,0.35,0.34,0.34,0.35,0.34 共找到960條記錄 
sql語句B: 
代碼: 

復制代碼代碼如下:


select * from users where username like '許%'; 


在Mysql-Front中的8次查詢時長為:0.06,0.07,0.07,0.07,0.07,0.07,0.06,0.06 共找到836條記錄 
sql語句C: 
代碼: 

復制代碼代碼如下:


select * from users where username like '%許'; 


在Mysql-Front中的8次查詢時長為:0.32,0.31,0.31,0.32,0.31,0.32,0.31,0.31 共找到7條記錄 
在實驗過程中,我沒有另開任何程序,以上的數據說明在單表查詢中,建立索引的可以極大地提高查詢速度。 
另外要說的是如果建立了索引,對于like '許%'類型的查詢,速度提升是最明顯的。因此,我們在寫sql語句的時候也盡量采用這種方式查詢。 
對于多表查詢我們的優化原則是: 
盡量將索引建立在:left join on/right join on ... +條件,的條件語句中所涉及的字段上。 
多表查詢比單表查詢更能體現索引的優勢。 
11、索引的建立原則: 
如果一列的中數據的前綴重復值很少,我們最好就只索引這個前綴。Mysql支持這種索引。我在上面用到的索引方法就是對username最左邊的6個字符進行索引。索引越短,占用的 磁盤空間越少,在檢索過程中花的時間也越少。這方法可以對最多左255個字符進行索引。 
在很多場合,我們可以給建立多列數據建立索引。

索引應該建立在查詢條件中進行比較的字段上,而不是建立在我們要找出來并且顯示的字段上 
12、一往情深問到的問題:IN、OR子句常會使用工作表,使索引失效。如果不產生大量重復值,可以考慮把子句拆開。拆開的子句中應該包含索引。 
這句話怎么理解決,請舉個例子 
例子如下
如果在fields1和fields2上同時建立了索引,fields1為主索引 
以下sql會用到索引 
代碼: 

復制代碼代碼如下:


select * from tablename1 where fields1='value1' and fields2='value2' 


以下sql不會用到索引 
代碼: 
select * from tablename1 where fields1='value1' or fields2='value2' 
[/code] 
13.索引帶來查詢上的速度的大大提升,但索引也占用了額外的硬盤空間(當然現在一般硬盤空間不成問題),而且往表中插入新記錄時索引也要隨著更新這也需要一定時間。 
有些表如果經常insert,而較少select,就不用加索引了.不然每次寫入數據都要重新改寫索引,花費時間; 這個視實際情況而定,通常情況下索引是必需的。

14.我在對查詢效率有懷疑的時候,一般是直接用Mysql的Explain來跟蹤查詢情況。 
你用Mysql-Front是通過時長來比較,我覺得如果從查詢時掃描字段的次數來比較更精確一些。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲精品自拍 | 国产一区二区三区欧美 | 中文字幕在线观看一区 | 亚洲香蕉视频 | 久久精品日产第一区二区三区 | 国产日韩欧美精品 | 亚洲成人精品一区 | 成人免费毛片aaaaaa片 | 久久久久国产一区二区三区四区 | 国产免费av在线 | 国产精品18久久久久久首页狼 | 影音先锋中文字幕在线观看 | 91国内外精品自在线播放 | 一色视频| 国产在线精品一区二区 | 久久久久久亚洲av毛片大全 | 色综合一区二区 | 亚洲五码在线 | 久久国产亚洲精品 | av在线播放网址 | 久久精品国语 | 青草久操 | 午夜在线影院 | 草樱av| 日韩在线观看三区 | 欧美激情一区二区 | 亚洲无吗电影 | 国产视频久久久 | 黄色免费美女网站 | 午夜操操| 欧美一区亚洲一区 | 久久91久久久久麻豆精品 | 毛片在线网站 | 伊人网在线 | 亚洲精品视频免费观看 | 三区在线 | 国产视频一二三区 | 午夜草民福利电影 | 欧美freesex黑人又粗又大 | 午夜精品久久久久久 | 青娱乐国产视频 |