mysql 的一個sql 語句 最佳化

來源:互聯網
上載者:User
SELECT t_wenzhang.contents, t_wenzhang.createTime, t_wenzhang.title,t_wenzhang.pagePath FROM t_wenzhang LEFT JOIN t_keys ON t_keys.id = t_wenzhang.keyword where SUBSTRING( KeyP, 1, 1 )='" + zimu + "' order by createTime desc






上面t_wenzhang 表4W 資料,t_keys 3W,怎麼這個執行10+秒!如果和最佳化!


回複討論(解決方案)

首先是對t_keys.id,t_wenzhang.keyword,KeyP,zimu這4個欄位建立索引
其次如果還是慢可以試著改變一下引擎
最後可以用explan來協助選擇更好的索引和寫出更最佳化的查詢語句!

首先是對t_keys.id,t_wenzhang.keyword,KeyP,zimu這4個欄位建立索引
其次如果還是慢可以試著改變一下引擎
最後可以用explan來協助選擇更好的索引和寫出更最佳化的查詢語句!


4W 資料 聯合,怎麼會這麼慢?

主要就是索引與最佳化沒做好(特別是索引),當然,跟你的欄位的長度也有所關係

好的設計比好sql 好,不要太依靠sql 可以去瞭解nosql資料庫 對以後用sql有非常大協助,我現在基本一般不會去用左串連查詢了。 你這是文字查詢出文章的key?

合理最佳化表的索引,關鍵串連表的id加上索引。
where SUBSTRING( KeyP, 1, 1 )='" + zimu + "' 引起查詢變慢,貼出表結構看看。

SUBSTRING( KeyP, 1, 1 )='" + zimu + "'
不會使用索引,應寫作這樣
KeyP like '" + zimu + "%'

合理最佳化表的索引,關鍵串連表的id加上索引。
where SUBSTRING( KeyP, 1, 1 )='" + zimu + "' 引起查詢變慢,貼出表結構看看。

上面對t_wenzhang. 下面是 t_keys

SUBSTRING( KeyP, 1, 1 )='" + zimu + "'
不會使用索引,應寫作這樣
KeyP like '" + zimu + "%' 我要第一個字母 相等的,比如=a

實在不行還不如先建立一個暫存資料表,查詢完再刪掉!這樣效率快多了!

第一個字母相等就用:
like 'a%'

按照這個方法試下
SUBSTRING( KeyP, 1, 1 )='" + zimu + "'
不會使用索引,應寫作這樣
KeyP like '" + zimu + "%'
如果不行,請問樓主是在伺服器上測試還是本地,如果是伺服器上可以嘗試建立“預存程序”。
create procedure...

主要原因還是因為使用SUBSTRING函數,導致KeyP索引失效,換成"like '".zimu ."%'" 建立KeyP的索引,速度會提高很多。

如果索引都建了,主要原因就是在where條件中用了函數,同時也導致每次查詢都不會被緩衝,再就是join查詢要小結果集驅動大結果集

是mysql嗎?
SUBSTRING( KeyP, 1, 1 )='" + zimu + "' 這裡是php混著吧? 應該是 +$zimu+ 這樣?
改成 KeyP like '{$zimu}%' 或者 KeyP like '"+$zimu+"%'

t_keys.id 應該已有索引(主鍵)
t_wenzhang.keyword加索引
createTime 加索引
KeyP也加索引(可以加長度為1的索引)

然後, 就沒問題了

也不用left join了, join即可

t_是什麼意思

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.