日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql索引整理

發布時間:2025/4/14 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql索引整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.索引:

1.創建一般索引 create index index_name on table_name(columnname[...]);?

2.分析sql執行語句 在select 之前加explain eg:explain select * from table_name;

3.mysql從5.5.5之后默認采用innerdb為默認的存儲引擎,該引擎支持的兩種常見索引:b+樹索引和hash索引,hash索引的效率高于b+樹,但hash索引只支持=類型。

b+樹可以支持范圍的eg:>< ,b+樹一般三層即可表示,即訪問3次io可找到數值。

?

二.常見丟失索引的情況

1.左前綴法則:建立的聯合索引,如果查詢條件沒有第一個帶索引的列,則會丟失索引效果。

2.在索引的列表上有函數eg:max() left() avg(),則會丟失索引

3.使用<>或!=會無法使用索引 遇到不等于的情況,建議改用范圍查詢大于 or 小于

4.建議少用or

5.is null && is not null 會引起全表掃描

6.varchar類型字段加'' 否則會出現2的場景,因為mysql會隱式轉化,先將數字轉成varchar

數據庫中定義為日期類型的字段,查詢時程序中用str_to_date轉成日期在查詢,否則mysql也會進行隱式轉化

7.like '%_%' && like '%_' 會引起全表掃描,將%放在右邊eg: like '_%'能引用到索引,索引類型type=range

實際情況下如果左右兩邊都要加百分號,我們可以用覆蓋索引來解決,eg: select name from table where name like '%name%'; create index index_name on table(name,age);

要求所查詢的字段必須被索引所覆蓋到,在explain的時候,輸出的extra信息中如果有“Using Index”,就表示這條查詢使用了覆蓋索引,這就是覆蓋索引。

在mybatis持久層框架中我們可以用concat拼接的方式處理。

8.減少select * 的使用

?

1.小表驅動大表

select * from A where id in (select id from B); 當B表的數據集小于A表的數據集時,用in比exists效率高

2.order by:默認為升序,index高于filesort,遵照索引建的最佳左前綴原則

mysql4.1之后改進為單路排序,一次查詢所需的列,如果buffer不足夠大,會導致重復訪問io,可適當調整sort_buffer_size max_length_for_sort_date 參數值

3.group by: 同order by,且where 高于 having,限制條件盡量卸載where中

4.開啟慢查詢日志:set global show_query_log=1;(只對當前數據庫有效,重啟后失效)

設置慢查詢的時間值3秒:set global long_query_time=3

使用mysql提供的mysqlddumpshow查詢慢日志的所需的信息 eg:得到訪問次數最多的10個SQL:mysqldumpslow -s c -t 10 /var/lib/mysql/sunys.log

5.使用show profile 查看sql執行的生命周期,進行sql分析:

?關注status的四種狀態:1)converting HEAP to MyISAM 查詢結果太大,內存不夠用往磁盤上寫2)Creating tmp table 創建臨時表(拷貝數據到臨時表再刪除耗性能)3)copying to tmp table on disk 把內存中的臨時表復制到磁盤4)locked ?

四:mysql鎖

1.無索引行鎖會升級為表鎖:

update/delete sql盡量帶上where條件并在where條件中設定索引過濾條件,否則會鎖表,性能低效。

轉載于:https://www.cnblogs.com/sunys/p/6916750.html

總結

以上是生活随笔為你收集整理的mysql索引整理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。