關於專案中相關優化 分頁查詢慢問題排查步驟

2021-09-02 18:37:24 字數 822 閱讀 2839

專案中10條資料的分頁列表查詢大概要6秒多,原sql只是在3000014行的表資料裡查詢,如圖:

因為是mysql的資料庫,mysql可能通過explain與desc來檢視並分析sql語句的執**況,如圖:

可以看出有建立有索引的,如果不放必索引建立有問題,可以通過 show index from tablename 來查詢表

建立索引,奇怪的有索引查詢還那麼慢,難道索引不起作用還是索引建立後不可用,於是我嘗試備份了這張表

-- 建立備份表

create table t_gateway_info_back select * from t_gateway_info;

這樣只是建立表結構與資料,同樣的在此表上執行查詢耗時還是沒有什麼變化,從這裡可以看出我們建立的索引沒有起作用,為什麼呢?檢視了一下表結構字段定義為varchar(64)型別,返回去再看看sql發現查詢條件的引數型別有問題(到這裡你發現問題沒有?),修改sql執行查詢,如圖:

到這裡問題應該明白了,可以看到 mysql 幫我們做了一件事兒"隱式轉換".

優化分頁查詢

我們一般使用分頁都是使用limit來完成的,如果資料量小的話還可以,但是當資料量非常大的時候,不建立索引,通過全表查詢,將會非常耗時,效能將受到很大的影響。第一種優化方式 在索引上完成排序分頁的操作,最後根據主鍵關聯回原表查詢所需要的其他列內容 例 我想對我之前的分頁進行優化,沒有優化前的sql語句...

mysql優化 優化分頁查詢

create table goods id bigint 20 unsigned not null auto increment,name varchar 10 default null,price double default null,create time datetime default n...

MySQL如何優化分頁查詢

mysql如何優化分頁查詢一般分頁查詢是建立覆蓋索引能夠比較好的提公升效能。第一種優化思路 在索引上完成分頁操作,最後根據主鍵關聯回原表查詢所需要的其他列內容 未優化之前的sql,這個相當於是全表掃瞄 select film id,description from film order by tit...