做伺服器端開發的同學們,相信對於mysql應該是十分熟悉,但是一旦真正出現問題,你是否能夠快速的發現問題的起因,並且解決呢?一旦問題涉及到資料庫層面,往往不是那麼好解決的,通常來說,我們需要提前做應對未來可能出現問題的準備。下面是幾條針對mysql使用的優化建議:
儘量減少資料庫上的計算操作
將那些需要耗費cpu資源計算資料的操作盡可能的放在伺服器上執行,不要所有的數學計算全部拋給資料庫,減小資料庫開銷,提公升效率。
合理的分庫分表
按照具體的業務需求,合理的設計資料庫和表,將資料合理分開儲存。單錶數量最好不超過500萬記錄。乙個資料中表數量最好不多於300。
合理控制每張表中的字段
單錶的字段控制在20以內為最佳,而且字段盡量短小但是含義???晰。大字段或者過多的字段都會影響執行效率。
建議使用反正規化的設計
在資料庫的學習過程,多數都會介紹關於資料庫的正規化,達到第幾正規化需要如何設計等等,但在實際應用過程,往往需要犧牲正規化,利用空間換取時間。因為正規化級別越高可能意味著更多的表關聯操作。
盡量杜絕3種大的sql操作
第一種:超長的sql語句,而且往往是多表查詢,建議拆分多條,減少查詢的字段等
第二種:事物比較長的sql語句,容易失敗,並且會影響其他sql的執行
第三種:批量的sql資料執行
最好使用數值型別儲存
占用空間小,計算快
盡量避免使用null
如何資料庫中存在null,查詢優化困難,並且儲存null也需要額外的空間。因為的null的存在,查詢時也會導致復合索引失效。
盡量不使用text或者blog等
如何可以使用varchar儲存資料,盡量使用varchar,比text和blog效能好很多。
mysql使用建議,盡量避免這些問題
做伺服器端開發的同學們,相信對於mysql應該是十分熟悉,但是一旦真正出現問題,你是否能夠快速的發現問題的起因,並且解決呢?一旦問題涉及到資料庫層面,往往不是那麼好解決的,通常來說,我們需要提前做應對未來可能出現問題的準備。下面是幾條針對mysql使用的優化建議 儘量減少資料庫上的計算操作 將那些需...
MySQL建議列屬性盡量為NOT NULL
除非你有乙個很特別的原因去使用 null 值,你應該總是讓你的字段保持 not null。這看起來好像有點爭議,請往下看。首先,我們要搞清楚 空值 和 null 的概念 1 空值是不占用空間的 2 mysql中的null其實是占用空間的 所謂的null就是什麼都沒有,連 0都沒有,0在字串中是結束符...
盡量避免直接使用 kill 9
kill 9 沒有給程序留下善後的機會 1 關閉socket鏈結 2 清理臨時檔案 3 將自己快要給銷毀的訊息通知給子程序 4 重置自己的終止狀態。通常,應該傳送 15,等一兩秒鐘,如果沒有效果,傳送2,如果還不行,傳送1。總之,在使用 kill 9 前,你應該先使用 kill 15,給目標程序乙個...