将threads和posts 一对多关联起来
现在数据量posts表达到了1亿, threads表2000万, 大约一个主题有5篇回复
请你设计一下分表, 将posts表和threads表进行mysql分表
5. 现在有一个mysql 主库/丛库, 请问php mysql
查询的时候怎么在php
程序中实现主从分离? 主从分离有什么好处配置主从数组文件,自己封转几个model函数,
查询的加载slave配置实例化,破坏数据的操作加载master进行实例化优点:并发负载能力提高,利于数据维护和安全,提高可用性缺点:数据同步有些延迟
6. 简述UCenter的单点登录机制
所谓单点登录,无非就是几个站点共用一个用户中心,实现同步登陆,同步退出。
其实最终还是用户去登录,只是采用了ajax (javascript利用src异步跨域调用)用户不会发现。
而且利用了p3p头实现了,不同域名,单点登录(ucenter用的cookie)
缺点就是采用ajax 客服端请求 ,如果有10个以上应用,登录速度就慢下来了。
7. linux相关 有一个包 http://www.120.net/test-1.0.0.tar.gz
a. 将它
下载到/usr/local/src
b. 将其源码编译安装到/usr/local/test 目录
c. 他依赖mysql包, 位于/usr/local/mysql 目录
写出
下载编译安装过程
wget - c http://www.120.net/test-1.0.0.tar.gz/usr/local/srctar zxvf /usr/local/src/test-1.0.0.tar.gzcd /usr/local/src/test-1.0.0./configure --prefix=/usr/local/test --exec--prefix=/usr/local/mysqlmake testmake install
8. 使用php 的memcache扩展编写一个获取数据的函数(缓存即将过期超时加锁)
a. 数据超时之后去mysql获取, 获取完后更新memcache
b. 去mysql获取数据的时候加锁, 让一个进程去mysql拉数据, 其他人返回memcache中的数据
public function get_cache($key) { if($this->memcahe) { $var = $this->memcahe->get($this->pre.$key); $valid = $this->memcahe->get($this->pre.$key.''_valid''); if($var && !$valid) { $lock = $this->memcahe->get($this->pre.$key.''_lock''); if(!$lock) { $this->memcahe->set($this->pre.$key.''_lock'', true, 0, 60); return false; } } return $var; } return false; }
public function set_cache($key, $var = null, $expire = 0) { if($this->memcahe) { $expire = (int)$expire; $expire = ($expire ? $expire : $this->expire); $this->memcahe->set($this->pre.$key, $var, 0, $expire+300); $this->memcahe->set($this->pre.$key.''_lock'', false, 0, $expire); $this->memcahe->set($this->pre.$key.''_valid'', true, 0, $expire); return true; } return false; }
9. 简述队列, 堆栈的原理
都可以看做是一维数组来操作,队列先进先出,出列只能在列头,进列只能在列尾,堆栈是后进先出,进栈和出栈都是从栈顶
堆栈的工作原理是什么?
堆栈是一种抽象数据结构,其操作机理是后进先出。当你把新条目推进堆栈时,已经在堆栈内的任何条目都会压到堆栈的深处。同样的,把一个条目从堆栈移出则会让堆栈内的其他条目都向堆栈的顶部移动。只有堆栈最顶端的条目能从堆栈中取出,条目离开堆栈的顺序和它们被推进堆栈的顺序一样。你不妨回想下自动售货机的装货和取货过程就明白了。
10. arrayaccess 定义如下 用它实现一个数组
ArrayAccess {
/* Methods */
abstract public boolean offsetExists ( string $offset )
abstract public mixed offsetGet ( string $offset )
abstract public void offsetSet ( string $offset , string $value )
abstract public void offsetUnset ( string $offset )
}
class Single implements ArrayAccess{ private $name; private static $