Skip to content

Instantly share code, notes, and snippets.

View liujingyu's full-sized avatar

jingyu liu liujingyu

View GitHub Profile

ubuntu:

$ wget https://www.percona.com/downloads/pmm-client/pmm-client-1.1.1/binary/debian/xenial/x86_64/pmm-client_1.1.1-1.xenial_amd64.deb

$ dpkg -i pmm-client_1.1.1-1.xenial_amd64.deb

centos:

@liujingyu
liujingyu / MySQL:expire_logs_days.md
Last active August 1, 2017 09:20
MySQL 二进制日志删除处理

MySQL expire_logs_days 设置

说明:

当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间。

mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
@liujingyu
liujingyu / PHP:str_after.md
Last active July 20, 2017 03:55
截取字符串的一部分返回

php strstr

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com
echo PHP_EOL;

$user = strstr($email, '@', true); // As of PHP 5.3.0

binlog 与redo log 区别

1、首先两者都是记录数据的改变,不同的是,binlog是记录所有数据的改变信息,而innodb的redo log只是记录所有innodb表数据的变化。

2、binlog是记录已经提交完毕之后的dml以及ddl sql语句,而innodb redo log是正在执行中的dml以及ddl语句

3、binlog可以作为恢复数据使用 redo log可以作为异常down机或者介质故障后的数据恢复使用

4、在db文件目录下,也分属于不通的日志文件中。

MySQL 名词解释

DDL 是Data Definition Language:它用于定义数据结构。

例如,使用SQL,它将是指令,如create table,alter table

DML是Data Manipulation Language:它用于操纵数据本身。

例如,使用SQL,它将是指令,如insert,update,delete

@liujingyu
liujingyu / PHP:version.md
Last active July 11, 2017 07:45
PHP 在Mac上 多版本管理

mac php multi versions

brew install php-version
source $(brew --prefix php-version)/php-version.sh && php-version 7

example:

@liujingyu
liujingyu / Git:log.md
Last active July 11, 2017 07:47
git full log

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative

MySQL blob优化

首先,介绍下关于InnoDB引擎存储格式的几个要点:

1、InnoDB可以选择使用共享表空间或者是独立表空间方式,建议使用独立表空间,便于管理、维护。启用 innodb_file_per_table 选项,5.5以后可以在线动态修改生效,并且执行 ALTER TABLE xx ENGINE = InnoDB 将现有表转成独立表空间,早于5.5的版本,修改完这个选项后,需要重启才能生效;

2、InnoDB的data page默认16KB,5.6版本以后,新增选项 innodb_page_size 可以修改,在5.6以前的版本,只能修改源码重新编译,但并不推荐修改这个配置,除非你非常清楚它有什么优缺点;

3、InnoDB的data page在有新数据写入时,会预留1/16的空间,预留出来的空间可用于后续的新纪录写入,减少频繁的新增data page的开销;

Git prune

大家帮忙想想办法让已经失效的远程 branch-name 在执行 git branch -a 的时候不再展示吧 清理远程分支,把本地不存在的远程分支删除

git remote prune origin

Git delete tags

#Delete local tags.
git tag -l | xargs git tag -d
#Fetch remote tags.
git fetch
#Delete remote tags.
git tag -l | xargs -n 1 git push --delete origin
#Delete local tasg.