|
java论坛就是与大家一起谈谈java相关的那些事,其实在java开发中我们接触到最最相关的无非就是数据库的设计与使用了,那么这次我们就来考虑下java项目开发中的mysql数据库的优化问题,性能提高了,我们才真正做到了学为所用,也让我们真正体会到了学习的乐趣与成功,今天无意中看到关于mysql数据库性能优化的问题想一想的确是很重要 对于java编程是不容忽视的一个重要方面。那么mysql的性能优化到底要有哪些原则呢?总结了以下几点,仅供参考。* N. ^! N- |- n6 R
1. 为查询缓存优化你的查询0 y4 B7 E" q" l1 L) r4 b0 v' _" S7 X% y
2. EXPLAIN 你的 SELECT 查询
. Q. k: }: H6 V3. 当只要一行数据时使用 LIMIT 1
$ ~. M9 h }9 H1 J+ T7 Y4. 为搜索字段建索引
# ?# u# O2 x5 D4 w ?. ?3 U5. 在Join表的时候使用相当类型的例,并将其索引
$ S. [' _2 ?' M6. 千万不要 ORDER BY RAND()
3 O6 L! i, k) V/ d3 \7. 避免 SELECT *
- F5 R8 {9 o1 e" v; X8. 永远为每张表设置一个ID: j. ^' K' Y" d# b* b0 c2 I3 W, @! j
9. 使用 ENUM 而不是 VARCHAR6 i" m4 U4 m! o! N: g& v
10. 从 PROCEDURE ANALYSE() 取得建议
1 e+ x, L0 v: J5 C11. 尽可能的使用 NOT NULL
$ ]+ r/ S" u' m9 p12. Prepared Statements
) i9 d! c# H# r; f4 j- k# ~4 h13. 无缓冲的查询# `; M, ~7 L0 b9 q4 j4 S
14. 把IP地址存成 UNSIGNED INT
$ f; X% H% d; o9 I/ h+ \2 P15. 固定长度的表会更快
9 F2 E; H ^+ F8 R1 o% M3 z* B16. 垂直分割
1 b9 S. _8 w, Y) I17. 拆分大的 DELETE 或 INSERT 语句- w& N& a" ]) S: \4 s
18. 越小的列会越快% p/ p5 x: U' B
19. 选择正确的存储引擎0 o; z. O' I! x
20. 使用一个对象关系映射器(Object Relational Mapper)
! A6 t, g( u6 b4 V+ {) U8 M21. 小心“永久链接”
& Z6 F$ L; `6 F2 i! J. D- ?4 u4 ~) \
2 e( ~9 u! d Z
1 b) J2 I" ?$ Z# p, D. P7 x# `% D! {* J p
; `% ^& K# V- N) E |
|