ECMS生成实测:两千万数据、17.3GB数据库

| 收藏本文 下载本文 作者:mousoon

这里给大家分享一些ECMS生成实测:两千万数据、17.3GB数据库(共含9篇),供大家参考。同时,但愿您也能像本文投稿人“mousoon”一样,积极向本站投稿分享好文章。

ECMS生成实测:两千万数据、17.3GB数据库

篇1:ECMS生成实测:两千万数据、17.3GB数据库

5、测试在使用内容动态页的数据读取速度:0.0025秒点击小图查看大图6、查看50万下数据库大小:50万信息,主表大小为67.7MB,第一个副表为37...

5、测试在使用内容动态页的数据读取速度:0.0025秒

点击小图查看大图

6、查看50万下数据库大小:50万信息,主表大小为67.7MB,第一个副表为370.8MB

点击小图查看大图

总结:

参数数据信息数:50万后台管理信息列表速度:0.0089秒修改信息页读取数据:0.0051秒生成5000条数据:18秒内容动态页的速度:0.0025秒主表phome_ecms_news:67.7MB副表phome_ecms_news_data_1:370.8MB总数据库大小:439.2MB

说明:上面每个副表存储50万数据,其实通过整个万数据测试后发现副表存储100万数据效率也差不多,

ECMS生成实测:两千万数据、17.3GB数据库(4)

篇2:ECMS生成实测:两千万数据、17.3GB数据库

翻页:0.0091秒点击小图查看大图3、修改信息页读取数据:0.0051秒点击小图查看大图4、生成5000条数据开始生成:点击小图查看大图生成过程截...

翻页:0.0091秒

点击小图查看大图

3、修改信息页读取数据:0.0051秒

点击小图查看大图

4、生成5000条数据

开始生成:

点击小图查看大图

生成过程截图:

点击小图查看大图

5000条生成时间:18秒

点击小图查看大图

生成后的栏目目录:

篇3:ECMS生成实测:两千万数据、17.3GB数据库

二、测试环境1、硬件配置:使用本人工作使用的机器测试,普通的配置CPU:2.0 GHz内存:1GB2、软件环境:使用无任何优化的帝国CMS6.0一键安...

二、测试环境

1、硬件配置:使用本人工作使用的机器测试,普通的配置

CPU:2.0 GHz

内存:1GB

2、软件环境:使用无任何优化的帝国CMS6.0一键安装包

WINDOWS

APACHE 2.2.4

PHP 5.2.0

MYSQL 5.0.27

ZEND Optimizer 3.2.6

帝国CMS6.0开源版(GBK)

(注:因为只是测试所以采用效率比较一般的WINDOWS平台,最好的PHP+MYSQL运行环境建议采用LINUX或UNIX平台,)

3、截图工具用PrintScreen屏幕截取+photoshop保存

4、网站存放数据栏目限制在12个

5、所有栏目都使用新闻系统模型

6、计算php页面时间代码:

以下为引用的内容:

在$empire=new mysqlquery;下面加

$stime=microtime(true);

在文件代码最下面加

$etime=microtime(true);

$total=$etime-$stime;

echo '执行时间:'.$total.'秒';

?>

7、生成时间查看代码

date(“Y-m-d H:i:s”)

三、分析万数据如何分配

利用帝国CMS的每个栏目都可以单独使用存放表的特性,我们可以把每个栏目都使用单独的存放表,

也就是建12个相同的新闻表和模型(news~news12)。下面我们来计算下单表的存放数据范围:

1、首先我们可以用取平均值计算单个栏目存储的数据数量范围

20000000/12约等于1700000,所以每个栏目只要存储170万条数据就可以存下2000万数据。

2、根据我们的硬件环境条件我们可以计算出比较合理的单表大小范围

由于我们本机测试,所以2.0GHz的CPU基本可以满足表读写和生成处理。

但由于我们的内存只有1GB,除去系统进程开销、PHOTOSHOP和浏览器开销,剩余出来的数据能使用的内存应该不足700MB,所以为了保证MYSQL能更快的读取一个表所有数据,建议MYSQL单表数据不要大于这个内存大小。对于帝国CMS来说就是主表的大小不要大于可用内存的大小,副表大小倒是其次,因为副表没有一次读取的情况,所以保守的估计主表大小最好在500~600MB范围为佳。

四、由于不知道多少数据使主表是在500~600MB范围,所以下面我们要用第一个新闻表来测试

说明:由于是第一次测试所以采用比较保守的增量:以每次插入50万数据测试并查看效果,直到达到最佳的内存范围。

测试项目:后台管理列表速度及翻页、修改信息速度、生成速度、动态内容页查看速度、查看数据库大小

(一)、第一次导入50万数据到news表:

1、导入截图

点击小图查看大图

2、后台管理信息列表速度

直接访问:0.0089秒

篇4:ECMS生成实测:两千万数据、17.3GB数据库

数据库总大小:17.3GB、总记录数:4千万零450条、信息数量:2千万条、单表最大信息数:400万条点击小图查看大图一、前言:帝国CMS 6.0版本...

数据库总大小:17.3GB、总记录数:4千万零450条、信息数量:2千万条、单表最大信息数:400万条

点击小图查看大图

一、前言:

帝国CMS6.0版本最重要的升级功能是对系统构架进行升级,构架更加完美、负载容量更大,然而很多人就问,这个全新的构架有多大的魅力、容量是多少?其实我也不能准确的告诉你,因为6.0刚发布不久并且没有空闲时间测试,那时我只能告诉你“总体容量可无限放大,单表存放容量是原来的几十倍、甚至更多,副表数据量达到一定大小后可设置分表,副表支持无限分表,因而副表容量是无限的”,

然而理论是需要实践去验证的,所以趁着这两天比较空闲试着测试,并且测试结果令我非常吃惊,

在2000万数据中最大的news单表中从50万导到400万数据无论从生成内容页效率还是管理信息列表竟然没有多大差别:

单表无论是50万还是400万生成5000个内容页速度为:19秒

单表无论是50万还是400万后台管理信息列表速度为:0.009秒

《2千万数据、17.3GB数据库用帝国CMS6.0分表合理存放》分成数个篇章对帝国CMS大数据量如何合理存放的进行介绍,整个测试过程都是边运行边截图,采用透明、公开的方式供大家监督!如果有谁对测评过程和测评结果有疑问,可以自行参照我们的测试过程搭建类似的测试环境自己测试和对比测试结果。

下面我们就开始测试。

篇5:帝国CMS 2千万数据、17.3GB数据库下超强生成速度

数据库总大小:17.3GB、总记录数:4千万零450条、信息数量:2千万条、单表最大信息数:400万条

一、前言:

帝 国CMS 6.0版本最重要的升级功能是对系统构架进行升级,构架更加完美、负载容量更大,然而很多人就问,这个全新的构架有多大的魅力、容量是多少?其实我也不能 准确的告诉你,因为6.0刚发布不久并且没有空闲时间测试,那时我只能告诉你“总体容量可无限放大,单表存放容量是原来的几十倍、甚至更多,副表数据量达 到一定大小后可设置分表,副表支持无限分表,因而副表容量是无限的”。然而理论是需要实践去验证的,所以趁着这两天比较空闲试着测试,并且测试结果令我非 常吃惊,

在万数据中最大的news单表中从50万导到400万数据无论从生成内容页效率还受理信息列表竟然没有多大差别:

单表无论是50万还是400万生成5000个内容页速度为:19秒

单表无论是50万还是400万后台管理信息列表速度为:0.009秒

二、测试环境

1、硬件配置:使用本人工作使用的机器测试,普通的配置

CPU:2.0 GHz

内存:1GB

2、软件环境:使用无任何优化的帝国CMS6.0一键安装包

WINDOWS

APACHE 2.2.4

PHP 5.2.0

MYSQL 5.0.27

ZEND Optimizer 3.2.6

帝国CMS6.0开源版(GBK)

(注:因为只是测试所以采用效率比较一般的WINDOWS平台,最好的PHP+MYSQL运行环境建议采用LINUX或UNIX平台。)

三、以2000万数据中最大的news表数据量为400万、数据表大小为3.4GB为例:

400万单表情况下生成5000条数据:19秒

1、后台点管理信息列表速度:

0.008秒

2、修改信息页读取数据:

0.005秒

3、400万单表情况下生成5000条数据:

19秒

开始生成:

生成过程截图:

5000条生成时间:19秒

查看成后的栏目目录HTML:

4、测试在使用内容动态页的数据读取速度:

0.0025秒

四、由于章节比较多,所以不能在贴子中说明,点击下面链接查看完整的测试过程

《2 千万数据、17.3GB数据库用帝国CMS6.0分表合理存放》分成数个篇章对帝国CMS大数据量如何合理存放的进行介绍,整个测试过程都是边运行边截 图,采用透明、公开的方式供大家监督!如果有谁对测评过程和测评结果有疑问,可以自行参照我们的测试过程搭建类似的测试环境自己测试和对比测试结果,

点击这里查看完整的测试过程:www.phome.net/ecms6/jm/20000000/20000000.html

五、本次2000万数据最终测试数据统计:

本次测试经验总结:

优点:

6.0在大数据下的优势非常明显,生成内容页、动态内容页效率非常之快且不受数据量影响,解决了CMS负载最大的问题,并且使用按表管理信息列表速度很快,单表几十万和几百万数据没有明显区别。

不足之处:

在 于单栏目数据量大于200万时标签调用、栏目列表速度有所下降(指的是增加检索条件的情况),主要由于最耗资源的置顶排序与多重排序,下版会考虑删除置顶 功能与优化列表,并且会增加大数据量标签调用优化处理功能,以达到所有页面速度在大数据量都很优秀,不仅是内容页效率优秀。

本次测试 2000万只是本人空闲时搞的小测试,主要让大家知道帝国分表如何处理更好,只要分表均匀可以将一个很大的数据分解成无数个相同效率的表,单表无论是50 万、400万甚至1000万数据在管理信息列表与生成页面效率基本是相同的,例如:5000万数据中12个栏目可以分成每表存放450万,每个450万数 据表效率都是一样的。未来版本帝国将会推出更完美的构架,主表可以像副表一样无限分表,让系统性能再度翻倍提升。做一个完美的安全、稳定高效、强大、灵活 的CMS是我们的终极目标,多年来我们一直朝这个方向迈进,不断创新不断完善。帝国软件以为中国网站提供最完善的建站解决方案为已任,打造国内最好的 CMS程序。

帝国CMS对大数据情况建议:

数据表结构最好的优化是将所有的自定义字段都存放到副表;主表只存放标题字段;

总体的数据表数据分配均匀,主表下的每个副表存放建议100万数据以内;

内容页减少标签调用或采用JS调用或者采用.shtml包含最新内容页面的方式;

栏目列表设置最大显示数量;

过期信息或不再调用的信息进行归档;

减少使用搜索,搜索是最耗资源的功能;

自行修改文件去除标签和列表的置顶排序(置顶功能下版会默认删除),对性能更高要求的可只采用id排序;

优化运行环境,特别是MYSQL数据库优化;

服务器配置最好2GB以上内存、采用更快的CPU以及硬盘转速缓存更高IO更快。

未来帝国CMS版本对大数据方面功能展望:

标签调用与列表性能优化,删除置顶功能并且对标签调用优化处理;主表结构更加优化。

推出更完美的构架,主表可以像副表一样无限分表,让系统无论从维护数据还是生成页面性能将再度翻倍提升。

多服务器结构支持,实现负载均衡。

增加Oracle、postgresql、Mssql等多种数据库支持。

......更多功能我们正在不断的探索与创新,相信会给大家更多的惊喜。

附:帝国CMS6.0系统数据构架图

篇6:实例:用触发器生成数据库表的数据操作日志

作为一名数据库管理员,你尽力以各部门熟知的不同格式,向各部门提供它们所需要的数据,你通常将MS Excel格式的数据递交到会计部门,或将数据以HTML报表的形式呈现给普通用户。你们的系统安全管理员们则习惯于用文本阅读器或者事件查看器来查看日志。本文将介绍如何使用触发器,把DML(数据操作语言)对数据库中的特定数据表的改动记录下来。注:下列例子为Insert型触发器,不过改成Delete/Update型的触发器也很容易。

操作步骤首先让我们在Northwind数据库内创建一个简单表。

create table tablefortrigger

(

track int identity(1,1) primary key,

Lastname varchar(25),

Firstname varchar(25)

)

创建好这个数据表后,添加一个标准message到master数据库的sysmessages数据表中。注意,我所添加的是一个参变量,用以接受一个字符值,它将被输出显示给管理员们。通过设置@_with_log参数为true,我们包管相关结果被发送到事件日志。

sp_addmessage 50005, 10, '%s', @with_log = true

现在我们创建这条用有意义的信息填充的消息。下面的信息将填充这条消息,并且记录到文件中:

・操作的类型(插入)。

・受到影响的数据表。

・改动的日期与时间。

被该语句插入的全部字段。 下面的这个触发器用预定义值(1~3个字符)创建一个字符串,该预定义值位于inserted数据表中。(这个inserted数据表驻留在内存中,它容纳 入到触发器所在数据表的记录行)。触发器连接这些值并放到一个@msg变量。然后这个变量被传送到raiserror函数,该函数将它写到事件日志中。

Create trigger TestTrigger on

tablefortrigger

for insert

as

--声明储存消息的变量

Declare @Msg varchar(8000)

--将“操作/表名/日期时间/插入字段”赋与消息

set @Msg = 'Inserted | tablefortrigger | ' + convert(varchar(20), getdate) + ' | '

+(select convert(varchar(5), track)

+ ', ' + lastname + ', ' + firstname

from inserted)

--产生错误发送给事件查看器,

raiserror( 50005, 10, 1, @Msg)

运行以下语句对触发器进行测试,然后查看事件日志:

Insert into tablefortrigger(lastname, firstname)

Values('Doe', 'John')

如果你打开事件日志,你应该看到以下消息:

既然我们已经有办法写入事件日志了,那么让我们修改一下触发器,将数据写到一个文本文件中。这次改动还须添加另一个变量@CmdString,以及使用扩展储存过程xp_cmdshell。

因为我们要写入文件系统,安全权限开始有影响了。所以,执行插入操作的用户必须具备该文本文件的读写权限。因此,设计一个C/S结构的应用程序供多用户运行,或许不是一个可行的解决方案。更合理的方案是,设计一个三层应用程序,由你的中间层组件对单用户数据库进行调用。在后一个方案中,对那个文本文件的权限管理其实比管理一个用户还容易。

Alter trigger TestTrigger on

tablefortrigger

for insert

as

Declare @Msg varchar(1000)

--储存将由xp_cmdshell执行的命令

Declare @CmdString varchar (2000)

set @_msg = ' insert | tablefortrigger | ' + convert ( varchar ( 20 ) , getdate ( ) ) + ' | ' + ( select convert ( varchar ( 5 ) , track ) + ' , ' + lastname + ' , ' + firstname from insert ) -

[99%]set @Msg = 'Inserted | tablefortrigger | ' + convert(varchar(20), getdate()) + ' | ' +(select convert(varchar(5), track) + ', ' + lastname + ', ' + firstname from inserted)

--产生错误发送给事件查看器。

raiserror( 50005, 10, 1, @Msg)

set @CmdString = 'echo ' + @Msg + ' >> C:logtest.log'

--写到文本文件

exec master.dbo.xp_cmdshell @CmdString

让我们对它进行测试,先运行前面的插入语句,然后打开C:logtest.log文件查看结果:

Insert into tablefortrigger(lastname, firstname) Values('Doe', 'John')

问题解决了,对不对?哦,还没完全解决。发生多次重复插入的事件是什么原因?在这个例子中,你必须分别地处理每条记录。为了达到这个目的,我们必须用一个会带来麻烦的游标来访问“隐蔽面”。在执行以前,我必须预先给予警告。你应当了解的是,当这个应用程序进行大规模地记录插入、更新或删除时要当心,因为它可能会耗费大量的内存。

像你从下面看到的一样,这次我们在前面那个例子的基础上稍加调整,引入了一个游标,对该插入表的全部记录进行循环读取。每条记录分别插入一条线条,将各个事件区分

篇7:Excel单元格怎么随机生成数据

在平时的生活中,我们常常需要产生随机数,其实在excel中就可以实现,本文就为大家介绍一下Excel2007单元格怎么随机生成数据,

操作步骤

1、这个函数就是RandBetwween(bottom,top),表示生成从bottom到top之间的随机整数,

2、我们在Excel工作表的单元格中输入“=RandBetwween(10,100)”,不包括引号。

3、回车,这个单元格中就出现了一个10到100之间的随机数。

4、再使用Excel神奇的填充柄“将鼠标移动到单元格的右下角,当出现十字标志时,按下鼠标左键,向需要的方向拖动鼠标”,轻松得到更多的指定范围内的随机数据。

篇8:怎样用SQL 生成XML数据库教程

xml|生成xml

以前在介绍SQL2k的时候已经提到了SQL2k对XML的支持,使用for XML语句就可以很容易的把执行的结果转化为一个XML,这样可以在很大程度上提高系统运行效率和开发速度,详细的内容请参见Books Online,

怎样用SQL 2000 生成XML数据库教程

但是在使用ADO(Required ADO 2.6)访问返回的XML的方式和原来的Recordset是有所不同的。如果你还是使用Recordset访问的话,只能得到一个Unicode格式的XML Schema,而无法得到XML的内容,

其实这个问题也是很容易就能解决的,只是我自以为很熟悉ADO,没有仔细看Help,所以没有发现ADO是采用Stream的方式来得到和返回XML的。

Command 对象有两个属性,叫Input Stream和Output Stream,属性的值是一个IUnknown接口。可以把一个XML Parser的接口赋给它,或者是直接用Request、Response等。这样的好处是不需要再去生成一个Recordset,不需要去保存这些数据,从而节省了系统开销。

篇9:SELECT into outfile备份数据库数据

select email into outfile “test.txt” from email;

select substring(boss,0,2),addr from guest;

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE “/opt/abc.txt“ INTO TABLE table_name -www.2cto.com-

FIELDS TERMINATED BY ',' (column1, column2,colum3);

mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'

FIELDS TERMINATED BY ','

FROM ...

为了将由逗号分隔的文件读回来,正确的语句将是:

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2

FIELDS TERMINATED BY ','; -www.2cto.com-

相反,如果你试图用下面显示的语句读取文件,它不会工作,因为它命令LOAD DATA INFILE在字段之间

寻找定位符:

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2

FIELDS TERMINATED BY 't';

可能的结果是每个输入行将被解释为单个的字段,

LOAD DATA INFILE能被用来读取从外部来源获得的文件。例如,以dBASE格式的文件将有由逗号分隔并用

双引号包围的字段。如果文件中的行由换行符终止,下面显示的命令说明你将用来装载文件的字段和行

处理选项:

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name

FIELDS TERMINATED BY ',' ENCLOSED BY '”'

LINES TERMINATED BY 'n'; -www.2cto.com-

任何字段或行处理选项可以指定一个空字符串(''),

如果不是空,FIELDS [OPTIONALLY] ENCLOSED BY和

FIELDS ESCAPED BY值必须是一个单个字符。FIELDS TERMINATED BY和LINES TERMINATED BY值可以是超

过一个字符。例如,写入由回车换行符对(CR+LF)终止的行,或读取包含这样行的一个文件,指定一个

LINES TERMINATED BY 'r n'子句。 -www.2cto.com-

FIELDS [OPTIONALLY] ENCLOSED BY控制字段的包围字符。对于输出 (SELECT ... INTO OUTFILE),如果

你省略OPTIONALLY,所有的字段由ENCLOSED BY字符包围。对于这样的输出的一个例子(使用一个逗号作

为字段分隔符)显示在下面:

“1”,“a string”,“100.20”

“2”,“a string containing a , comma”,“102.20”

“3”,“a string containing a ” quote“,”102.20“

”4“,”a string containing a “, quote and comma”,“102.20”

=================

insert into tabl(id,email) select id, email from guest;

作者 huimai

SQLServer数据库误删除数据的恢复

远程管理SQL数据的方法数据库教程

基于气象色谱仪产出数据的数据库设计

FLASH连连看小游戏地图数据简单生成的AS代码

实现千万级数据的分页显示数据库教程

为下拉式数据窗口建立缓冲区数据库教程

Excel 访问远程数据的四种方法数据库教程

如何实现100%的动态数据管道(二)数据库教程

如何实现100%的动态数据管道(三)数据库教程

如何查询其他数据库内的表(IN子句实例)?数据库教程

ECMS生成实测:两千万数据、17.3GB数据库(集锦9篇)

欢迎下载DOC格式的ECMS生成实测:两千万数据、17.3GB数据库,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式

热门推荐

HOT

猜你喜欢

NEW
点击下载本文文档