談談自己對sql優化的理解

2021-09-12 20:59:47 字數 718 閱讀 4426

合理的使用快取來減少對資料庫的查詢。如利用mybatis的一級快取,來減少相同sql的查詢。

不使用select * from 得查詢,加大資料庫的壓力,使用什麼字段,返回什麼字段。

避免使用not in 或 <> 不等於的查詢,因為會查詢全表。

我們自己寫的sql很清楚知道,返回的資料有多少。當我們只需要有乙個結果返回時,利用limit 1.查出1條後面的就不在查了。減少與資料庫的互動。

對於我們經常能夠查詢的字段(列)或經常與其他表做條件的列,新增索引。(組合索引和單列索引)。

避免使用模糊查詢like,『%資料%』的查詢,就算改查詢列有索引,索引會失效,而『資料%』不會使索引失效。

將查詢條件更加精確化,提高了查詢的速率。

in操作的原理是先進性子查詢操作,再進行主查詢操作(適合主查詢是大表,子查詢是小表)。

exists操作的原理是先進行主查詢操作,再到子查詢中進行過濾(適合主查詢是小表,子查詢是大表)。

答案自然是否定的

資料量小的表不需要建立索引,建立會增加額外的索引開銷

不經常引用的列不要建立索引,因為不常用,即使建立了索引也沒有多大意義

經常頻繁更新的列不要建立索引,因為肯定會影響插入或更新的效率

資料重複且分布平均的字段,因此他建立索引就沒有太大的效果(例如性別字段,只有男女,不適合建立索引)

資料變更需要維護索引,意味著索引越多維護成本越高。

更多的索引也需要更多的儲存空間

談談自己對GO的RWMutex的理解

rwmutex的特性就是支援併發讀。適用於讀多寫少的場景。type rwmutex struct const rwmutexmaxreaders 1 30func rw rwmutex lock func rw rwmutex unlock 釋放互斥鎖,其他寫鎖就可以競爭互斥鎖了 rw.w.unlo...

談談自己對rest和RPC的理解

一 什麼是rest rest是一種架構風格,restful是遵循這種架構風格的應用程式或者設計。rest這種架構風格是美國乙個博士在他的博士 中提出來的,皆在於解決隨著網際網路的快速發展,傳統的軟體已經無法滿足在這個時代背景下人們需求。在這個新的時代下,在這個萬物互聯的時代下,網路和軟體這兩個曾經單...

何為SEO,談談自己對SEO的真實理解

關於seo的定義是沒有什麼好爭辯的,即search engine optimization,漢譯為搜尋引擎優化。大多數人會直接理解為針對關鍵詞排名進行的站內站外各種優化。這都是正確的,這裡就不重複了。實際上關於seo,站長們通常都有自己的態度與理解,本人也不例外,尤其是從事seo相關工作一段時間以後...