mysql自帶查詢優化,mysql數據庫設計與優化?
首先使用約束可以確保表數據的準確完整和唯一性;
其中常見的約束有
PRIMARY KEY, DEFAULT, UNIQUE, FOREIGN KEY,NOT NULL
一般情況下:DEFAULT 和 NOT NULL是會限制的,可以確保數據完整避免程序邏輯不夠嚴謹造成的系統異常。但也不是絕對的,如果是后期優化還要考慮現有數據是否會造成沖突。
PRIMARY KEY 在大對數情況下會設置作為業務數據的唯一標識符。但一些關系表一般可以不設置。有人說PRIMARY KEY 必須自增,其實也未必。得就實際業務需求而定。
UNIQUE 約束可以保證一列或者多列組合值都是唯一的??梢蕴嵘@一列的搜索效率。但同樣也得考慮歷史數據的情況。
當然以上情況只是經驗之談,具體數據庫的優化一定是根據實際的業務邏輯進行的。可能沒有什么必須遵守不可違背的定律。
只要符合業務需求并且能夠提升業務效率,就是合理的設計。