1.為表建立索引
2.開啟查詢緩存
3.limit 知道查詢結(jié)果時設(shè)置顯示條數(shù),阻止程序繼續(xù)向下查詢
4.為每張表設(shè)置id?
5.避免select *唯竹、order by
6.ENUM(枚舉):字段的取值是固定有限的如性別、國家痊远、部門等 和 varchar苛吱、
7.避免null null需要占用額外的空間??
8.固定長度靜態(tài)表:固定長度的表會提高性能盟庞,因?yàn)镸ySQL搜尋得會更快一些,因?yàn)檫@些固定的長度是很容易計(jì)算下一個數(shù)據(jù)的偏移量的跃巡,所以讀取的自然也會很快危号。而如果字段不是定長的,那么素邪,每一次要找下一條的話外莲,需要程序找到主鍵,并且兔朦,固定長度的表也更容易被緩存和重建偷线。不過,唯一的副作用是沽甥,固定長度的字段會浪費(fèi)一些空間声邦,因?yàn)槎ㄩL的字段無論你用不用,他都是要分配那么多的空間摆舟。使用“垂直分割”技術(shù)(見下一條)亥曹,你可以分割你的表成為兩個一個是定長的,一個則是不定長的恨诱。
9.垂直分割
10.引擎:MyISAM 適合于一些需要大量查詢的應(yīng)用媳瞪,但其對于有大量寫操作并不是很好。甚至你只是需要update一個字段胡野,整個表都會被鎖起來材失,而別的進(jìn)程,就算是讀進(jìn)程都無法操作直到讀操作完成硫豆。另外龙巨,MyISAM 對于 SELECT COUNT(*) 這類的計(jì)算是超快無比的笼呆。InnoDB 的趨勢會是一個非常復(fù)雜的存儲引擎,對于一些小的應(yīng)用旨别,它會比 MyISAM 還慢诗赌。他是它支持“行鎖” ,于是在寫操作比較多的時候秸弛,會更優(yōu)秀铭若。并且,他還支持更多的高級應(yīng)用递览。