2016-09-18 ruki
tbox supports sqlite3 and mysql databases now(depends on libsqlite3.a and libmysql.a) and provides the unified api to access database. We only need pass a given url for connecting and accessing it. A simple example: ```c /* init a mysql database * * mysql database url: * * - "sql://localhost: 继续阅读 »
2015-01-09 Robin Wen
文/温国兵 环境: Linux:RHEL 6.1 MySQL:5.5 登录到MySQL。 bash mysql -uroot -proot 创建测试表: ``` bash mysql> USE test; Database changed mysql> CREATE TABLE data_type(cola smallint unsigned) DEFAULT CHARACTER SET utf8; Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO data_type VALUES(27); Query OK, 1 row affected (0.01 s 继续阅读 »
2014-12-30 Robin Wen
Table of Contents {:toc} 文/温国兵 首先看两个例子: bash mysql -uroot -p ``` bash mysql> SELECT VERSION(); +-----------+ | VERSION() | +-----------+ | 5.5.41 | +-----------+ 1 row in set (0.00 sec) Session 1 mysql> USE test; Database changed mysql> DROP TABLE t1; ERROR 1051 (42S02): Unknown table 't1' mysql> CREATE TABLE 继续阅读 »
2013-11-10 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 热拷贝 在上一篇文章中我们提到热备,热备也就是在MySQL或者其他数据库服务在运行的情况下进行备份。本文分享另外一种备份的方法,也就是热拷贝。热拷贝跟热备很类似,只不过热备使用mysqldump命令,热拷贝使用mysqlhotcopy命令。热拷贝的优势在于支持服务运行中进行备份,速度快,性能好;劣势在于只能备份MyIsam的表,无法备份InnoDB的表。所以在生产环境中应该酌情使用。 二 示意图 三 热拷贝模拟 第一步,热拷贝。 bash mysqlhotcopy -uroot -p123456 --database larrydb > lar 继续阅读 »
2013-11-02 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 什么是冷备 用一句话概括冷备,就是把数据库服务,比如MySQL,Oracle停下来,然后使用拷贝、打包或者压缩命令对数据目录进行备份。如果数据出现异常,则可以通过备份数据恢复。冷备一般需要定制计划,比如什么时候做备份,每次对哪些数据进行备份等等。但是由于这样的备份占用过多的空间,对大数据量的环境下不一定适合,故生产环境很少使用。 二 冷备示意图 三 冷备实验 第一步,创建测试数据库,插入测试数据。 ``` bash mysql> use larrydb; Database changed mysql> show tables; +------- 继续阅读 »
2016-09-29 Borg
数据库 sql create database [IF NOT EXISTS] USE ALTER DATABASE [数据库名] {[DEFAULT] CHARACTER SET | [DEFAULT] COLLATE } DROP DATABASE [IF EXISTS] SHOW DATABASES [LIKE ] 继续阅读 »
2015-02-28 Robin Wen
文/温国兵 一 引子 有个知友邀请我回答问题,问道:「MySQL 每次查询一条数据查 10 次和一次查询 10 条数据效率有多少差距?」 总体上来说,一次查询 10 条数据效率是高于每次查询一条数据查 10 次的。但究竟差距多少,具体的数据很难说。这本来是一个很简单的问题,但我还是想亲身实践下,给以后碰到这个问题的朋友一点参考。我先做一个模拟,然后在文末给出一个分析。 说明:本文中的模拟只能提供参考。实际情况跟硬件配置、系统负载等因素相关。 二 模拟 在做模拟之前,得有数据。所以我创建了一组测试数据,如下: ``` bash mysql> USE test; Database changed mysql> CREAT 继续阅读 »
2015-09-15 Robin Wen
文/温国兵 一 目录 Table of Contents {:toc} 二 为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作。迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性。就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地方,铸就内心神往的城堡。 生产环境中,有以下情况需要做迁移工作,如下: 磁盘空间不够。比如一些老项目,选用的机型并不一定适用于数据库。随着时间的推移,硬盘很有可能出现短缺; 业务出现瓶颈。比如项目中采用单机承担所有的读写业务,业务压力增大,不堪重负。如果 IO 压力在可接受的范围,会采用读写分离方案; 机器出现瓶颈。机器出现瓶颈主要在磁盘 IO 能力、内存 继续阅读 »
2016-03-20 Robin Wen
文/温国兵 早在 2013 年,好友 waterbin 就写过一篇文章,标题叫做「DBA 的职业发展机会」。在这篇文章中,waterbin 提到了几个话题,亦即:一,OldSQL、NoSQL、NewSQL;二,DevOps;三,数据可视化;四,DBA 还是 DA。文章中的不少观点,现在看来依然不过时。而这篇文章,笔者想讲讲运维 DBA 的消亡。 整个信息时代,就是信息不断积累,不断膨胀的发展历程。「失控」一书提到:万物源于比特(It from bit)。还可以这样说,一切皆信息。那数据是什么,数据是信息的表现形式和载体。再者,数据库是什么,按照维基百科的解释,「数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗 继续阅读 »
2017-03-16 Robin Wen
文/温国兵 0x00 目录 Table of Contents {:toc} | 日期 | 作者 | 文档概要 | 版本 | 更新历史 | |:------------|:---------------|:-----|:-----|:-----|:-----| | 2017/03/14 | 温国兵 | 美团点评开源 SQL 优化工具 SQLAdvisor 测试报告 | v1.0 | 文档初稿 | 0x01 SQLAdvisor 介绍 SQLAdvisor 是由美团点评公司北京 DBA 团队开发维护的 SQL 优化工具:输入 SQL,输出索引优化建议。它基于 MySQL 原生词法解析,再结合 SQL 中的 where 条件 继续阅读 »