|
java论坛就是与大家一起谈谈java相关的那些事,其实在java开发中我们接触到最最相关的无非就是数据库的设计与使用了,那么这次我们就来考虑下java项目开发中的mysql数据库的优化问题,性能提高了,我们才真正做到了学为所用,也让我们真正体会到了学习的乐趣与成功,今天无意中看到关于mysql数据库性能优化的问题想一想的确是很重要 对于java编程是不容忽视的一个重要方面。那么mysql的性能优化到底要有哪些原则呢?总结了以下几点,仅供参考。1 C* l& f* W u% N# f. x
1. 为查询缓存优化你的查询( M/ h6 o% T& G' L n" F, A
2. EXPLAIN 你的 SELECT 查询: b! O0 Z% e* { W/ r0 _
3. 当只要一行数据时使用 LIMIT 11 A! S3 n: c; e
4. 为搜索字段建索引
5 t3 q T t, o2 I7 |0 l5. 在Join表的时候使用相当类型的例,并将其索引1 G4 M! [& j6 {
6. 千万不要 ORDER BY RAND()* @, p/ {. T2 {
7. 避免 SELECT *5 s! e# [' _ R* \
8. 永远为每张表设置一个ID
: ]4 e; q8 H, g4 \9. 使用 ENUM 而不是 VARCHAR
: Y( \( }$ O$ e5 }8 y5 [. P1 H* y10. 从 PROCEDURE ANALYSE() 取得建议2 o1 t" M6 B+ t* o: |9 W
11. 尽可能的使用 NOT NULL5 `2 \) i& R( m l
12. Prepared Statements; g5 X* X9 g1 T! S. w9 t6 L2 X
13. 无缓冲的查询
0 E. N: ^$ N" m r3 _6 ^14. 把IP地址存成 UNSIGNED INT
' a5 R" d2 a& D15. 固定长度的表会更快" p+ {) G( m6 L, ?6 D
16. 垂直分割6 U% G5 X/ O' Z1 r9 |
17. 拆分大的 DELETE 或 INSERT 语句9 n% j2 v8 {7 {, p- t. k
18. 越小的列会越快# n) P/ }- s3 m. V" S
19. 选择正确的存储引擎" @9 Y" I1 H( o) c8 Q# f
20. 使用一个对象关系映射器(Object Relational Mapper)8 x3 Q: d, L" Y( y6 Y, i
21. 小心“永久链接”
9 {8 y' ^% Y" T8 W( Y& t- K/ s( q" @* m0 K" u1 X- |- {9 \
& t; e6 W. i+ D% N. c3 x
8 G6 u) g; Q) F( ?- @1 m' t8 L
# U* M; X2 G: d7 L& I' b" i
) [9 x: H' V% d6 J8 J- G* {5 R |
|