“原谅他们是上帝的事,我们的任务是负责送他们见上帝。” SQL 语句查询碎片程度高(实际使用率小于30%)的表可以收缩的表条件为什么block>100,因为一些很小的表,只有几行数据实际大小很小,但是block一次性分配就是5个(11g开始默认一次性分配1M的block大小了,见create t ...
数据库拆分
童话里灰姑娘都很穷,但都很漂亮,你漂亮吗? 数据库水平垂直拆分当数据库量非常大的时候,DB 已经成为系统瓶颈时就可以考虑进行水平垂直拆分了。 水平拆分一般水平拆分是根据表中的某一字段(通常是主键 ID )取模处理,将一张表的数据拆分到多个表中。这样每张表的表结构是相同的但是数据不同。 不但可以通 ...
分布式 ID 生成策略
胸小的姑娘一般脾气都特大,胸大的姑娘一般脾气都特好,因为古语有云:穷凶极恶有容乃大! 前言对于系统中的一组数据而言,必不可少地对应有唯一标识。简单的单体应用可以使用数据库的自增 ID 作为唯一标识。而在复杂的分布式系统中,就需要一些特定的策略去生成对应的分布式 ID。 常见的项目中 ID 会有以 ...
MySQL 水平拆分表的一次踩坑
MySQL5.7 GTID原理与实战
工作多年,当人家问你是不是初入社会,不是因为你看起来年轻,而是因为觉得你怎么这么笨。 前言GTID是什么?GTID 是Global Transaction Identifiers的缩写,简称GTID GTID组成和架构1) GTID = source_id:transaction_id2) se ...
MySQL查询重复记录,删除重复记录方法
善良没用,因为只有你先漂亮,别人才能看到你的善良。 命令查找全部重复记录SELECT * FROM 表 WHERE 重复字段 IN (SELECT 重复字段 FROM 表 GROUP BY 重复字段 HAVING COUNT(*)>1); 过滤重复记录(只显示一条)SELECT * FROM 表 ...
MySQL修改表、字段、库的字符集及字符集
一直对发型和身材不满意的人,有一个共同点:不肯承认这是脸的问题。 命令修改数据库字符集ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...]; 把表默认的字符集和所有字符列(CHAR,VARCHAR,TE ...
Linux Systemd详解
一场说走就走的旅行,回来等着你的就是一段吃土的日子。 介绍Systemd是Linux系统工具,用来启动守护进程,已成为大多数发行版的标配,PID为1最先启动; 历史上,Linux 的启动一直采用init进程。$ /etc/init.d/apache2 start或者$ service apach ...
Linux查看最消耗CPU和内存的进程
真正努力过的人才知道,智商上的差距是不可逾越的。 命令 CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 内存消耗最多的前10个进程 ps auxw|head -1;ps auxw|sort -rn -k4|head ...
Nginx查看截取切割日志
这个世界没有错,谁让你长得不好看又没钱。 介绍nginx日志最好实现每天定时切割下,特别是在访问量比较大的时候,方便查看与处理,如果没切割,可以用sed直接切割 命令查找7月17日访问log导出到17.log文件中cat gelin_web_access.log | egrep "17/Jul/ ...