mysql,及postgresql 等SQL語句優化和大表優化解決方案

前言

當單表記錄數過大時,增刪改查性能都會急劇下降,可能原因:沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是程序設計的缺陷) 、I/O吞吐量小,形成了瓶頸效應、沒有創建計算列導致查詢不優化、內存不足、網絡速度慢  、查詢出的數據量過大(可以採用多次查詢,其他的方法降低數據量)、鎖或者死鎖(這也是查詢慢最常見的問題,是程序設計的缺陷)  、sp_lock,sp_who,活動的用戶查看,原因是讀寫競爭資源返回了不必要的行和列查詢語句不好,沒有優化 ,可以參考以下步驟來優化。

 單表優化

除非單表數據未來會一直不斷上漲,否則不要一開始就考慮拆分,拆分會帶來邏輯、部署、運維的各種複雜度,一般以整型值爲主的表在千萬級以下,字符串爲主的表在五百萬以下是沒有太大問題的。而事實上很多時候postgresql單表的性能依然有不少優化空間,甚至能正常支撐千萬級以上的數據量:

字段

  • 1、儘量使用TINYINT、SMALLINT、MEDIUM_INT作爲整數類型而非INT,如果非負則加上UNSIGNED
  • 2、VARCHAR的長度只分配真正需要的空間
  • 3、使用枚舉或整數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章