mysql数据库设计优化原则
该做什么
  更小更好
  简单
  避免null
  enum存储整数,读取转成字符串,在联表时varchar/char关联enum性能会差,关联表时不要混用联接
  合适利用范式和反范式,对于频繁查询的字段可以冗余
如何建索引
三星系统
  索引将相关的记录放到一起,则获得一星
  如果索引中的数据顺序和查找中的排列顺序一致则获得二星
  如果索引中的列包含了查询中的需要的全部列则获得三星
小技巧
  索引列高选择性
  多列索引是高选择性,符合条件结果行少的排前面
树形结构遍历对比(PHP)
测试数据
对于父子关系是我们常用的功能。以下是我们要建立树形结构的数据。
  
    step1:从数据库查找数据,放入数组。
      <?php
  $pdo = new PDO("mysql:host=localhost;dbname=test","root",""); 
  $rs = $pdo -> query("select * from catagory"); 
  $rs = $rs->fetchAll(PDO::FETCH_ASSOC);
  $temp = array();
  foreach($rs as $value){
      $value['ref'] = 1;
      if(!isset($temp[$value['...
Nginx基本配置
Nginx配置文件
Nginx.conf其实在这个文件中,默认的注释也已经把基本的使用方法写出来了。这里只是简单的总结下。
# 运行用户
user www-data;   
# 启动进程,通常设置成和cpu的数量相等
worker_processes  1;
# 全局错误日志及PID文件
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
# 工作模式及连接数上限
events {
    use   epoll;             # epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
    wor...
php-fpm优化参数
预备知识
pm进程管理方式
  static 静态,初始化pm.max_children 个子进程,不再改变
  dynamic 动态,主要有四个参数,pm.max_children最多活动子进程,pm.start_servers启动时的子进程,pm.min_spare_servers和pm.max_spare_servers,最大最小空闲进程
  ondemand 没有初始进程,请求来了就创建,最多max_children个,如果进程空闲时间超过pm.process_idle_timeout就kill
很容易看出来,静态不管访问多少,进程数是固定的,那么内存总是占用着,动态则根据请求数来调整进程数,并始终保持一些进程来应对请求,性能和内存都兼顾着,第三种按需
则完全根据请求...
利用docker配置mysql主从
目的
  熟悉docker基本使用和基本网络设置
  了解mysql主从
  启发mysql集群
docker是什么?
作为13年出现的云计算的宠儿,其利用容器的概念,老物新用,确实功能强大,能够快速构建集群,每个机器都可以看成是一个镜像的实例。你只需要构建一个环境就可以
轻松复制出无数个。他具有继承,重用的概念。如果不是很了解,请自行百度。
构建基本单元
我们需要构建出主从数据库,我们需要的基本环境就是一台装着mysql的“机器”我采用了centos6(当然就可以选择自己熟悉的环境),构建脚本Dockerfile:
FROM  centos:centos6
RUN yum install -y mysql-server mysql mysql-deve
CMD ["/...
apache的安全配置
简析http.conf
  
    ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录。默认为安装目录,不需更改。
     语法:ServerRoot directory-path
 如: ServerRoot "/usr/local/apache-2.2.6"
 注意,此指令中的路径最后不要加 / 。
    
  
  
    Listen:指定服务器监听的IP和端口。默认情况下Apache会在所有IP地址上监听。Listen是Apache2.0以后版本必须设置的指令,如果在配置文件中找不到这个指令,服务器将
无法启动。
     语法:Listen [IP-address:]portnumber [...
composer的使用
什么是composer?
composer是一个依赖管理工具,类似的,Java有Maven,Python有pip,Ruby有gem,Nodejs有npm。
安装
composer不多说,官网上有,php5.3.2+。如下:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
基本使用
为了使用composer管理的你项目,你需要在项目的根目录下有个其配置文件。composer.json,在其中指出你的项目依赖啥:
{
    "require":{
        "monolog/monolog":"1.2.*"
    }
}
安装依赖...
66 post articles, 9 pages.