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.