码迷,mamicode.com
首页 > Web开发 > 详细

dedeCMS,标准的MVC框架运行原理和缓存

时间:2014-09-03 01:34:16      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:http   使用   ar   文件   数据   sp   工作   时间   c   

1.织梦的工作原理:
  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)来充当索引。


dedeCMS,标准的MVC框架运行原理和缓存

标签:http   使用   ar   文件   数据   sp   工作   时间   c   

原文地址:http://my.oschina.net/u/1771585/blog/309385

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!