|
java论坛就是与大家一起谈谈java相关的那些事,其实在java开发中我们接触到最最相关的无非就是数据库的设计与使用了,那么这次我们就来考虑下java项目开发中的mysql数据库的优化问题,性能提高了,我们才真正做到了学为所用,也让我们真正体会到了学习的乐趣与成功,今天无意中看到关于mysql数据库性能优化的问题想一想的确是很重要 对于java编程是不容忽视的一个重要方面。那么mysql的性能优化到底要有哪些原则呢?总结了以下几点,仅供参考。
/ h) f0 t) m, n. [% X1. 为查询缓存优化你的查询
5 E4 p4 n- Q. }* Q/ X2. EXPLAIN 你的 SELECT 查询
. [" u7 G- O! `& i9 t" @3. 当只要一行数据时使用 LIMIT 1
Y0 V# @& f$ Y2 C# W& l4. 为搜索字段建索引4 A1 N) y4 C) s
5. 在Join表的时候使用相当类型的例,并将其索引
8 z2 Y+ a9 [" @1 u, r6. 千万不要 ORDER BY RAND()
0 N0 p0 L7 [; Y' [+ l7. 避免 SELECT *
$ ]" B4 _! K! ?" `5 S% ]: ^8. 永远为每张表设置一个ID7 a: `9 O3 @$ f- I
9. 使用 ENUM 而不是 VARCHAR
( D/ I8 }/ T- c% B: \. G! \10. 从 PROCEDURE ANALYSE() 取得建议
0 o* R4 b' m% j1 l# y% }3 b) ~11. 尽可能的使用 NOT NULL
. _8 J( X% {+ b% h/ [' M7 `* U12. Prepared Statements
9 O ]7 d, n0 V1 I, N13. 无缓冲的查询% D) \- A' a2 W7 C, \
14. 把IP地址存成 UNSIGNED INT7 f" C' x2 } j
15. 固定长度的表会更快
C A! g( j9 y8 C6 Q1 O: ?16. 垂直分割. v, O' |: U4 L. A
17. 拆分大的 DELETE 或 INSERT 语句) w7 \) h. Y" W) h5 H
18. 越小的列会越快5 ? D# \& }0 f. R" ^
19. 选择正确的存储引擎3 E; r; a. I+ N' S* |
20. 使用一个对象关系映射器(Object Relational Mapper)! w3 v/ K2 i8 B/ B" u& f/ }8 @
21. 小心“永久链接”2 G" ?2 \0 d# h% r
1 o, z$ ?5 T5 G y0 Q
* }. Z$ Q) a! u t0 Y, v' y- `9 s o" J- W) O' ~1 @" _8 }
! ~: }1 Y& T1 }" a$ x) P0 b: y5 P7 M
# ^5 l2 Z* L) m, A0 N |
|