Home

mysql数据库设计优化原则

该做什么 更小更好 简单 避免null enum存储整数,读取转成字符串,在联表时varchar/char关联enum性能会差,关联表时不要混用联接 合适利用范式和反范式,对于频繁查询的字段可以冗余 如何建索引 三星系统 索引将相关的记录放到一起,则获得一星 如果索引中的数据顺序和查找中的排列顺序一致则获得二星 如果索引中的列包含了查询中的需要的全部列则获得三星 小技巧 索引列高选择性 多列索引是高选择性,符合条件结果行少的排前面

Read more

树形结构遍历对比(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['...

Read more

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...

Read more

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 很容易看出来,静态不管访问多少,进程数是固定的,那么内存总是占用着,动态则根据请求数来调整进程数,并始终保持一些进程来应对请求,性能和内存都兼顾着,第三种按需 则完全根据请求...

Read more

14年半年计划

2014-12-01 —— 2014-12-5(周计划) 完成docker配置mysql主从 完成 复习下lnmpa,前端nginx,后端apache配置 完成 新建代码仓,微信消息管理,回顾之前代码,基本走通,逐步重构 完成 开始设计模式细学,理解后写一篇博客 2014-12-22 —— 201412-28(周计划) 复习Innodb 存储引擎揭秘 完成 开始设计模式一种(php,java,C++)至少2种实现 完成 完成nginx负载均衡和nginx的高可用 完成 练习一个算法 完成

Read more

利用docker配置mysql主从

目的 熟悉docker基本使用和基本网络设置 了解mysql主从 启发mysql集群 docker是什么? 作为13年出现的云计算的宠儿,其利用容器的概念,老物新用,确实功能强大,能够快速构建集群,每个机器都可以看成是一个镜像的实例。你只需要构建一个环境就可以 轻松复制出无数个。他具有继承,重用的概念。如果不是很了解,请自行百度。 构建基本单元 我们需要构建出主从数据库,我们需要的基本环境就是一台装着mysql的“机器”我采用了centos6(当然就可以选择自己熟悉的环境),构建脚本Dockerfile: FROM centos:centos6 RUN yum install -y mysql-server mysql mysql-deve CMD ["/...

Read more

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 [...

Read more

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.*" } } 安装依赖...

Read more