View
622
Download
1
Category
Preview:
DESCRIPTION
ABOUT php study.
Citation preview
眯眯购站点开发分享Author:
bngoogle@sina.com http://www.mimigou.com2013-01-10
TOPIC
• 眯眯购站点简介
• 眯眯购架构
• PHP 语言
• 数据库设计介绍
眯眯购
• 一、定位• 大型导购互动分享社区。
• 二、用户情况:• PV 3 K; IP:500
• 注册用户: 3K
眯眯购站点各阶段版本进化
• 1.0 版;第一版本; 基础模块建立,商品、好店、名牌、活动,用户;
• 2.0 版;前台页面重新设计。对模块进行升级。
• 后台操作功能更多,更方便。
• 3.0 版;对部分小模块进行升级,如用户账户(发邮件找回密码,第三方登录激活本地账户),礼品管理,积分管理,短信息管理。
• 4.0 用户宝贝分享,明星搭配……
• ………
眯眯购 web 1.0
• 一
眯眯购 web 2.0
• 一、
站点架构 - 基础
• LNMP =
(Linux 、 Nginx 、 MySQL 、 PHP)
• Linux : centos6
• Nginx :
• Mysql : 5.0+
• PHP: 5.3.5
• 搜索: lucene
使用的框架
• Mxigniter
• Mxigniter 是什么? Codeingiter 的
super 版 ; 兼容 codeigniter.
• Codeigniter 是什么? 流行的 PHP 开源开发框架。
为什么选择 mxigniter ?• 架构清晰: 基于 HMVC 的架构
• 数据库支持 ORM 操作;
• 工具类库丰富。
• Codeigniter 中文文档齐全,学习低成本,高效率。
• Template (模板引擎) , route( 路由 ),
theme (主题), httpsqs (队列), email……
Mxigniter 和 Codeigniter的对比
• HMVC VS MVC
• 明确各种资源路径存放
• 完善的 ORM
• 丰富的开源软件支持;httpsqs , memcache , scws
• …….
框架文件目录•
1 个简单的数据操作范例• $this->load->model(‘goods_m’); // 载
入商品类
• $list=$this->goods_m->limit(10)-
>get_all(); // 获取数据
• $this->load->library(‘cache’); // 载入缓存类
• $this->cache->set(‘goods_list’, $list);//
存缓存
• $this->cache->get(‘goods_list’); // 取缓存
程序发布流程
编程细节
• 内存的使用。不在代码里进行复杂的计算。
• 使用类 (虽然也支持函数),使代码清晰。
• 语法方面参考手册;中文手册下载
• 用 if(){
• } 还是 if()
• {
• }
数据表设计规则
• 1 不要去设计完全符合三大范式的数据库;
• 2 、减少使用 join 去全局搜索。 why ?当水平分表的时候,该方式的语句都要改掉。
• 3 、必要的字段冗余。
• 4 、良好的数据库索引;涉及到前台经常使用的查询和 join 的字段,要给其加上索引。
数据表设计规则
• 5 尽量 cache ,少 sql; sql 是涉及到 IO 的瓶颈。
• 6 数据库撑不了,就用缓存。
• 7 只取自己需要了,例如列表中,新闻的 description就不要取出来。
数据表设计规则
• 8 、字段定义不要默认设置为 null ,而是这样 'name' varchar(30) not null default ''; 。 why ? null占用空间, '' 不占用;其次,会混淆。比如 0 和 null以及 '' 是否一致, php这种弱类型语言,会认为是一致了,但有些数据库不这么认为。
• 9 、写高效的 mysql 。避免多次读取数据库,最好是一两次查询解决问题,而不是多次循环。目的还是 IO 的性能。
• 10 、把表设置为 innodb 类型。 why ?支持事务、行锁;当然如果,你的表是读取很多,写入很少,还是用 myisam 更合适。
谢谢
一切都很美好,我们幻想着春天来了。春天没有来。
Recommended