担心被骂,本不想写这篇文章。犹豫良久,最终还是决定写。希望能够帮助到一些朋友,认识到数据库索引正确设计的重要性。) o: r6 A- T9 u
; ]0 ^: v R. O8 d由于我比较懒,就简单用文字描述一下,就懒得切图片证明了,懂技术的朋友可以自己测试一下,可证实我的测试结果是否真实。不懂技术的朋友信不信也无妨。
$ ~7 o% O8 v3 e4 T6 m: o: s! B$ k, W9 V& L1 X8 m0 H- S. u
测试程序:
1 Q6 Q! w- W9 y030ci.mmafn.com 248bk.mmg2g.net 774ke.mobilew.net 082pp.mobilew.net 748fm.mobo6.com 280or.mokezi.com 732pb.mrdxm.com 606tq.mrpao.com 735tg.mrpao.com 570ct.msd0755.com
8 [' H% P- B% j) L- oCMS程序:帝国cms dedecms phpcms
' y+ ^% a7 r) P# A6 o8 i; |6 x: h) x K6 X
论坛程序:discuz phpwind xiuno, j% y1 Z9 Y* M8 E" s4 h9 I' W
: F+ m. W6 }; Q; g: A' }负载测试结果:
' G' u2 Q) n5 L i+ O/ H" I! M3 v2 g l, x2 n
xiuno > discuz > phpwind > phpcms > ( 帝国cms ? dedecms): ]. {2 h4 M/ i5 Y( L3 R5 V
~: g$ e! G0 r从数据库设计来看(个人观点): n; ~1 z! J6 m& Q
4 Q! M( F, n, n$ [4 n! ^
xiuno > (discuz 、 phpwind 、 phpcms) > (帝国cms 、 dedecms)9 S7 Q* Y) ]. G0 N( B7 {
, k x, i8 g0 ?/ Ededecms和帝国cms都是老牌的CMS了,从的数据库设计来看,不知是数据库设计者完全没有理解mysql索引的真谛,还是留一手以对高负载需求的用户收费改进?(希望不懂技术的朋友不要喷我,真正懂mysql索引的朋友可以自己看一下他们对索引的设计,虽然对于dedecms和帝国cms的作者来说,我只是一个晚辈,像您们这样有10多年开发经验的人,我比较尊敬,但我建议当前的dedecms和帝国cms数据库设计者还是再研究一下mysql索引吧,可以不相信我,但可以花点时间看看discuz 、phpwind的数据库设计吧,确实是比您们的好)。: q1 d' B& t b. I
" R8 L: E! D0 w2 g1 A X; S如果有幸帝国cms作者能看到此文,希望您再重新设计帝国cms架构吧,毕竟这些年您一直在改进帝国cms的负载能力,光是通过分表技术提升,没有真正用到索引来优化,真的不行的,如果用对了索引,性能还会有更大的提升。
x' I K! t! c% I U
- U( ^& a( x4 B8 vdedecms的创始人我算是和他认识,但现在dedecms却不是他的,比较遗憾,现在的dedecms这几年确实没多大变化,一直在打补丁,这样下去真是比较悲剧。
) A7 d* s: z- k; Q$ H7 J/ ~! p" `% @; T: T7 _
我的测试环境:
' U* ]+ \& r& ~* c- `
) e U& p# n; V3 z& zi3CPU 4G内存 1T硬盘 win7系统 apache 2.2 + mysql 5.0(普通环境没有优化过)2 G9 R& [* r* g4 P5 l. f% J8 x2 x
e, s' `5 L& R测试方法:* U2 q! n, j' c" q. n+ b
9 R" B1 ~/ A& J# j, D, P) H
导入100万至1亿 不等数据,进行简单的访问测试3 s: P6 z( b$ Q. K
% @. ^" n' O l D9 {) O我的导入方法:
; X5 L6 ?* s1 ~0 U
$ p% e' e! c, _+ m根据各个程序的数据结构写出导入程序,6 H5 a0 J- l4 V# S3 M+ `4 j o
2 ]* u5 U; y% t n, I' a
1.先写一个PHP程序,将数据写入 e:/insert1.sql 这个文件,
! a: W" C: j8 \' w, U- Y) H" ^# q3 y8 ]/ I1 {) i
2.然后再通过 LOAD DATA local INFILE 'e:/insert1.sql' INTO TABLE `数据表名` character set 编码; 这种方式导入的,导入千W数据也就几分钟。
+ g, w! F N) |' R m5 U! ^, \2 s0 J
1、帝国cms9 J( G; p' Z. ?) e% G5 R
1 z+ m* b6 \ q# S: I5 V3 x测试版本:EmpireCMS_7.0_SC_GBK (当前官方最新版)$ a* y* k# E2 s: B2 V7 Q
) w, \% D4 c) l2 H' V6 Q. z
先说说帝国cms,官方有一篇大数据测试贴(2千万数据、17.3GB数据库下帝国CMS超强生成速度 ),当年我看到这篇测试贴时,也觉得负载非常强大,但我测试后,令我失望了。. s' O9 y4 ~# Z# M( O
( E& ?- l) f8 n5 x
安装默认测试数据(共33篇新闻测试数据),首页改为动态首页 第一次访问0.670127010345459 第二次访问0.07926607131958
( h3 q$ _( Z R9 _' I6 A5 t
8 S% b2 f, ~% N9 Y2 a |