|
java论坛就是与大家一起谈谈java相关的那些事,其实在java开发中我们接触到最最相关的无非就是数据库的设计与使用了,那么这次我们就来考虑下java项目开发中的mysql数据库的优化问题,性能提高了,我们才真正做到了学为所用,也让我们真正体会到了学习的乐趣与成功,今天无意中看到关于mysql数据库性能优化的问题想一想的确是很重要 对于java编程是不容忽视的一个重要方面。那么mysql的性能优化到底要有哪些原则呢?总结了以下几点,仅供参考。
?4 Y6 w0 c/ B b1. 为查询缓存优化你的查询8 c+ |$ ^/ v7 v3 E9 H1 y
2. EXPLAIN 你的 SELECT 查询
+ G' P; q. A+ w* I3. 当只要一行数据时使用 LIMIT 1% O) I: ?0 Z0 e* a3 I4 g3 X9 F
4. 为搜索字段建索引4 q" R: q* B' N2 s9 N
5. 在Join表的时候使用相当类型的例,并将其索引2 P8 G1 w+ t% }6 O% O c% t
6. 千万不要 ORDER BY RAND()
9 n. e8 }( a* n; x. g' N8 i' \- {7. 避免 SELECT *$ b( s0 r y6 b) O$ M- T7 e2 \- R
8. 永远为每张表设置一个ID+ Y/ u8 R3 S+ h* g- B0 M
9. 使用 ENUM 而不是 VARCHAR$ {: s" k9 I9 S5 a! Y$ q( R* }
10. 从 PROCEDURE ANALYSE() 取得建议
0 V* e. M' W# e% F3 q11. 尽可能的使用 NOT NULL
J b5 }" n; |2 G( N1 `0 C* C; l12. Prepared Statements% D( p! H$ J f8 E# w9 B" X- `7 G
13. 无缓冲的查询
' @- S+ O% D4 [4 }5 H+ Z; J14. 把IP地址存成 UNSIGNED INT
9 b1 l/ S( o% v8 O7 J9 A15. 固定长度的表会更快3 e& E- G( F: e$ ^, V5 [
16. 垂直分割" l* j+ T% k( n& n4 J
17. 拆分大的 DELETE 或 INSERT 语句
' q O$ O* i, Y' I4 b18. 越小的列会越快; K4 t) f0 u! j. U
19. 选择正确的存储引擎& J' t% X1 b, J. ?4 y5 p8 a
20. 使用一个对象关系映射器(Object Relational Mapper)7 ^5 R* p2 g, Y, _4 o
21. 小心“永久链接”
5 l9 y" z2 \8 X- ?
4 ?+ @, T& ^( |8 }0 j
" _0 _/ o( K( W0 Y' @
& U# _5 F! ~% m- U2 P' n! a/ y) C% s3 `* Z& t' @9 a7 H% D! p
$ B6 @% n0 T4 u. x( T. j- K; Q
|
|