|
java论坛就是与大家一起谈谈java相关的那些事,其实在java开发中我们接触到最最相关的无非就是数据库的设计与使用了,那么这次我们就来考虑下java项目开发中的mysql数据库的优化问题,性能提高了,我们才真正做到了学为所用,也让我们真正体会到了学习的乐趣与成功,今天无意中看到关于mysql数据库性能优化的问题想一想的确是很重要 对于java编程是不容忽视的一个重要方面。那么mysql的性能优化到底要有哪些原则呢?总结了以下几点,仅供参考。
; `# D7 D) p: p- R1. 为查询缓存优化你的查询3 m9 E. \9 K5 q7 B2 \
2. EXPLAIN 你的 SELECT 查询
2 I* R, q# v# d3. 当只要一行数据时使用 LIMIT 1 L! \* l% V" m8 {+ Z& e! ~
4. 为搜索字段建索引+ p( f; U u# x9 M$ h& R/ e! U& B
5. 在Join表的时候使用相当类型的例,并将其索引
7 n2 D0 _2 ^" |: z9 r& `* S6. 千万不要 ORDER BY RAND()
' U5 o( @$ o) }7. 避免 SELECT *
; r3 w/ d9 z( ^2 b5 k S- {8. 永远为每张表设置一个ID
0 W: h5 P N, Y$ x; y9. 使用 ENUM 而不是 VARCHAR
4 B5 H1 U- f$ C' i. t, P10. 从 PROCEDURE ANALYSE() 取得建议: Q, S# O3 J! ]# q4 `* U( s: `0 w* z
11. 尽可能的使用 NOT NULL
. b; j8 R. D. Q* T7 X# I12. Prepared Statements
' t) ^6 _4 U5 S& q' ~" d# z# {* P$ T13. 无缓冲的查询1 u/ G; U$ C- e; J& J: O6 `( u
14. 把IP地址存成 UNSIGNED INT
1 t: ^! u: m6 z: i, Y) g8 k15. 固定长度的表会更快
8 t0 h: `8 m% H2 ^16. 垂直分割$ f0 z2 i$ E6 K
17. 拆分大的 DELETE 或 INSERT 语句
5 Q# }5 {$ S t1 B7 L6 Z" G$ p9 {18. 越小的列会越快% H+ s: e* | @- P- c& [) f
19. 选择正确的存储引擎1 y1 w3 ]4 F( f8 N+ d
20. 使用一个对象关系映射器(Object Relational Mapper)
; U1 X# z q3 x+ q4 G& }+ e* k21. 小心“永久链接”9 H4 ~0 g4 j% f3 e+ U
) l; T# _9 R1 P9 G# X; j3 c# m0 b- W7 k4 g
G! ^/ G% b4 Y; q0 y, {8 U
0 L+ B' e# E' x$ m/ E
1 T$ O, U/ }! _7 T: e$ Y |
|