數(shù)據(jù)庫優(yōu)化第一步就是建立合理的索引,這也是最初級的優(yōu)化,也是DBA常用的優(yōu)化方案!MySql索引類型有:普通索引,主鍵索引,唯一索引,組合索引!
從業(yè)務角度,優(yōu)化SQL語句;這里給大家分享一個例子,查詢?nèi)齻€小時內(nèi),未處理的訂單;使用一條SQL語句的效率要遠遠低于使用18條SQL語句,每條SQL語句搜取10分鐘;
能用小字段類型,就盡量用小字段類型;如能用short,就不要用int;能用數(shù)字類型,就不要用字符串類型,舉個例子,一般的訂單號都是數(shù)字,很少有字母的。
表的拆分一般分為橫向拆分和縱向拆分,橫向拆分不改變表結構,重復多建立幾張表。這種優(yōu)化方式類似于上文提到的SQL語句優(yōu)化的例子;另一種是縱向拆分,兩個表通過字段相關聯(lián)。
分庫是數(shù)據(jù)庫優(yōu)化的一種較高級手段,實際上是橫向分表的衍生;一般需要有中間件或者客戶端做一些工作實現(xiàn),這里給大家推薦兩個分庫的代碼:一個是mycat,基于阿里coba開源的數(shù)據(jù)庫中間件,很容易實現(xiàn)分庫分表、主從切換功能。另一個當當網(wǎng)開源的一個庫 sharding-jdbc