Fork me on GitHub
云舒的个人博客


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

  • 搜索

《高性能MySQL》读书笔记

发表于 2018-08-01 | 阅读次数:

Schema与数据类型优化

选择的优化的数据类型

  1. 一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为他们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期更少。

  2. 使用简单的数据类型。例如,整型比字符串操作代价更低,因为字符串集和校对规则(排序规则)使字符比较比整形比较更复杂。另外,应该使用应该使用mysql的内建类型而不是字符串存储日期和时间,应该使用整形存储IP地址。

  3. 尽量避免NULL值。使用NULL的列会使用更多的存储空间,在MySQL里需要特殊处理。当可为NULL的列被索引时,每个索引需要一个额外的字节,在MyISAM里甚至可能导致固定大小的所有(例如只有一个整形列的索引)变成可大可小的索引。通过把可为NULL的列改为NOT NULL带来的性能提升比较小,如果不确定这回导致性能瓶颈问题不必要首先修改。如果计划在列上建索引,就尽量避免设计成可为NULL的列。

阅读全文 »

thinkphp5 “$this->redirect()” 到底经历了啥

发表于 2018-04-07 | 阅读次数:

redirect方法,可以在自定义的控制器实现跳转的功能。看thinkphp 5.1源码发现它是在在jump trait中定义的一个方法。

Controller.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.
.
.
use traits\controller\Jump;

class Controller
{
use Jump;

/**
* 视图类实例
* @var \think\View
*/
protected $view;

/**
* Request实例
* @var \think\Request
*/
protected $request;

.
.
.
}
阅读全文 »

数据库扩展

发表于 2018-04-04 | 阅读次数:

复制和分离

主从复制

复制原理:

主从复制

  1. master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
  2. slave将master的binary log events拷贝到它的中继日志(relay log);
  3. slave重做中继日志中的事件。
阅读全文 »

网站性能优化

发表于 2018-03-25 | 阅读次数:

前端优化

减少http请求数

  • 图片地图。客户单图片地图可以使用map标签来实现。如果正在导航或者其他超链接中使用多个图片,将他们转换为图片地图是加速页面的最简单的方式。
  • CSS Sprites。将多幅图片合并成单独的图片。使用CSS的background-position属性,可以将HTML元素放置到背景图片期望的位置上。
  • 内联图片。使用data:URL模式可以在Web页面中包含图片但无需额外的HTTP请求。
  • 合并脚本和样式表。理想情况下,一个页面应该使用不多于一个脚本和样式表。
阅读全文 »

Mysql数据库学习总结

发表于 2018-03-20 | 阅读次数:

关系型数据库

关系型数据库的三范式

第一范式(1NF): 每一列都是不可分割的原子数据项(基本类型列)

第二范式(2NF): 要求实体的属性完全依赖于主关键字(无重复行)

第三范式(3NF): 数据表不包含其它表已有的非主属性(无数据冗余)

关于数据库的规范设计,都会谈到是否符合三范式。但是考虑到数据库的性能优化,也不必都按照三范式来设计,可以做数据的适当冗余。如为了查询效率,在商品表,可以设置个img_url字段放图片的主图。

阅读全文 »

让github上fork的项目同步原项目

发表于 2018-02-24 | 阅读次数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
## 先clone到本地仓库
git clone https://github.com/yunshu2009/think.git

## 保持和远程仓库同步
git remote add upstream https://github.com/top-think/think.git

## 拉取远程仓库最新代码
git fetch upstream

## 合并到本地仓库
git merge upstream/master

## 及时更新最新改动
git pull --rebase

使用SSR科学上网

发表于 2018-02-19 | 阅读次数:

使用一键安装脚本安装shadowsocksR

参考:https://shadowsocks.be/9.html

1
2
3
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
chmod +x shadowsocksR.sh
./shadowsocksR.sh

在CentOS 7上安装BBR加速

参考:

  • 部署方法:https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7)
  • 一键安装脚本:https://github.com/teddysun/across/raw/master/bbr.sh
阅读全文 »
123
yunshu

yunshu

云舒的个人博客

27 日志
2 分类
18 标签
GitHub Gitee
Links
  • 鸟哥
  • 黑夜路人
  • 博学无忧
  • Mengkang's land
  • 付坤
  • Chenjie's blog
  • qianlei
  • jay
© 2012 — 2019 yunshu
由 Hexo 强力驱动
|
主题 — NexT.Pisces