|
java论坛就是与大家一起谈谈java相关的那些事,其实在java开发中我们接触到最最相关的无非就是数据库的设计与使用了,那么这次我们就来考虑下java项目开发中的mysql数据库的优化问题,性能提高了,我们才真正做到了学为所用,也让我们真正体会到了学习的乐趣与成功,今天无意中看到关于mysql数据库性能优化的问题想一想的确是很重要 对于java编程是不容忽视的一个重要方面。那么mysql的性能优化到底要有哪些原则呢?总结了以下几点,仅供参考。 P" D" m$ \8 P
1. 为查询缓存优化你的查询
5 i+ ?' N- _) }: s# T2. EXPLAIN 你的 SELECT 查询
7 W \0 G, r; t3. 当只要一行数据时使用 LIMIT 1
9 S0 [+ i1 X8 O+ a4. 为搜索字段建索引
. M3 Z& N& |2 U; P, O5. 在Join表的时候使用相当类型的例,并将其索引
( P; i& C: d" j# B& [$ k d8 E8 u6. 千万不要 ORDER BY RAND()
7 N8 E: }" }3 l6 ]7. 避免 SELECT *% D* K1 `2 t$ T5 o( i B, A
8. 永远为每张表设置一个ID
/ S) \0 ^% s6 x) ^1 ]$ Y0 U2 x9. 使用 ENUM 而不是 VARCHAR) c) `& k: I9 z1 b. r$ j# f' K
10. 从 PROCEDURE ANALYSE() 取得建议& M4 u% ^% F* ~) W
11. 尽可能的使用 NOT NULL
M$ z4 B; N( w: y1 N; j12. Prepared Statements6 l0 t6 ~$ `( q
13. 无缓冲的查询
/ N! e: `/ y) Y4 \' T/ F14. 把IP地址存成 UNSIGNED INT% f0 { C# B' r& A
15. 固定长度的表会更快
( }/ Q, O$ k0 |1 r' M. P0 n7 Y16. 垂直分割; m' w; Y. R$ u
17. 拆分大的 DELETE 或 INSERT 语句 a: v0 F7 _. h) U9 |" B; _+ J+ y/ L
18. 越小的列会越快- X/ v" T! U& l; m% z( J' D: t
19. 选择正确的存储引擎" {5 I% F3 T) c( n3 L
20. 使用一个对象关系映射器(Object Relational Mapper)
( |9 Z2 @. ]0 K7 C. Q. B# y21. 小心“永久链接”
5 ~; s/ k% w9 [- a5 T
3 G8 `. T! t/ Z
) S& V) R. r1 s" T
" O/ c% e. J; N5 A8 g
3 l0 a' T6 a2 T
+ @6 z1 Y8 w# X$ r |
|