dedeCMS,标准的MVC框架运行原理和缓存
a.模板引擎;
b.内核文件的载入、读取;
运行原理:url->配置文件->公共函数文件->处理逻辑->模板引擎->展示;(公共函数文件、处理逻辑和模板引擎就是织梦的核心)
2.标准的MVC框架运行流程:程序首先从单人口文件开始运行,然后依次载入内核文件(同时开始各种的初始化)、配置、类和动作(在这之前已经载入了模板引擎),运行到业务层,业务层又会给类和动作,最后才展示出来。
3.关于缓存:
a.缓存类型:
按缓存类型划分:内存缓存、文件缓存、数据库缓存;
按缓存周期划分:永久缓存(长期缓冲)、周期缓存、临时缓存。
b.缓存的生成:
函数文件会生成缓存;各种业务逻辑、数据也会生成缓存。
c.缓存在什么条件下回重新生成:
信息(数据库)的更改——30分钟一次;
模板的更改——立刻更新;
函数文件,业务逻辑的更改——立刻更新;
关闭缓存——所有的文件都及时生成,立即更改。
4.文件缓存:每一个文件都一个属性,用MD5(哈希值)来唯一标示,生产的哈希值由文件的大小、类型、创建时间、修改时间等等属性确定生成:当其中任何一个发生变化时,其对应的MD5值就会发生变化。故文件是否发生变化由其MD5值是否发生变化来判断。
注:每一数字,字符,文件都有自己的MD5值,而MD5有16位和32位两种,16位的是从32的第9位开始联系截取16位获得的。
5.数据库缓存:对应的数据读取也会生成缓存问价。
数据库中:各种字段的检索速度也是不一样的:int>char(定长)>varchar(不定长)
关于char类型和varchar类型的区别:http://www.nowamagic.net/database/db_CharnVarchar.php
6.关于内存:
$a=1;
$b=2;
$a=$b;
:输出的$a=2;但是内存中的$a=1;
解释:在内存中间,将变量b的值赋值给变量a,其实就是让a的应用地址重新指向a的引用地址。在C中,这个被称为指针;在C#中,是属于应用类型,存在于托管堆。
7.数据库缓存优化:
由于cpu有限,空间有限,内存有限;
使用一次sql count语句会占有很大比例的内存和cpu,所以尽量少使用复杂的查询,如多表查询、子查询、内联和外联;尤其是内联和外联,能不用就不用。
尽一切可能使用单表查询。
这是就需要重新设计数据库。
8.关于索引:索引就一本书的目录,分外栏目索引和内容索引。
索引既可以使用主键(如id)来充当,也可以单独建立字段来标示;只有大型数据我们才建立单独字段来标示索引,中小型数据的情况我们一般直接用主键(如id)来充当索引。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。