|
java论坛就是与大家一起谈谈java相关的那些事,其实在java开发中我们接触到最最相关的无非就是数据库的设计与使用了,那么这次我们就来考虑下java项目开发中的mysql数据库的优化问题,性能提高了,我们才真正做到了学为所用,也让我们真正体会到了学习的乐趣与成功,今天无意中看到关于mysql数据库性能优化的问题想一想的确是很重要 对于java编程是不容忽视的一个重要方面。那么mysql的性能优化到底要有哪些原则呢?总结了以下几点,仅供参考。& }4 c' h( C5 ^0 ]9 ], ?! B! h4 S
1. 为查询缓存优化你的查询- {$ {: a: l8 ^7 f* g
2. EXPLAIN 你的 SELECT 查询
0 K8 y/ `7 a0 W# W [3. 当只要一行数据时使用 LIMIT 1 E+ s' T* {9 |1 n( d3 V; e+ h
4. 为搜索字段建索引 |* Y! ~) K& |4 ^% C% M
5. 在Join表的时候使用相当类型的例,并将其索引' D# e7 @$ t* v( P8 X3 e7 P
6. 千万不要 ORDER BY RAND()
: T6 `" Y. Z; ~3 B7. 避免 SELECT *8 ~) ?8 Z% i$ O6 r5 e( r) B: `& @6 O" L
8. 永远为每张表设置一个ID
: n' \7 e8 X N6 F3 X! e0 Z) K. Q9. 使用 ENUM 而不是 VARCHAR
/ p7 ?/ c2 r$ q$ b10. 从 PROCEDURE ANALYSE() 取得建议3 p* U* J1 W, c {
11. 尽可能的使用 NOT NULL
3 R* S9 i% b& \12. Prepared Statements
, t7 `0 M% P3 N: N6 K" T13. 无缓冲的查询
: s) n0 q! z! b6 ^. F& t+ I1 ]14. 把IP地址存成 UNSIGNED INT; X% ]. y" s) c Z0 G; ~8 @8 e5 z7 s6 Y
15. 固定长度的表会更快3 O7 k# o) A% v
16. 垂直分割3 n) O$ m1 j" A$ U) @
17. 拆分大的 DELETE 或 INSERT 语句
v. [3 z* D9 d9 s( x3 t" p18. 越小的列会越快" m8 d0 O% `8 d
19. 选择正确的存储引擎
& J) E! ~: R5 S1 ~- S. ?% |20. 使用一个对象关系映射器(Object Relational Mapper)
+ X% L o2 V0 g8 d% }# Z) i! u21. 小心“永久链接”! h, E5 }6 e4 U; ]0 X; K
9 F5 l2 C1 \ d$ ^3 |$ n" t7 j$ g8 I: E- u- _4 N7 [# {, w; c
( |: u8 ?' y; F
C! E" l7 j8 f+ f4 ~
+ |! u" ]( R" ^
|
|