十一 15

Linux(CentOS)下更改/转移MySQL数据库目录

由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录。网上有很多相关的文章写到转移数据库目录的文章,不过大部分都是相互之间转载的,而且转载的过程中还会有一些错误,因为大部分人根本就没测试过,所以错误也就顺便一块转载过来了,下面我简单整理一下这几天把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql下面具体操作。

继续阅读全文

19

mysql数据库表名的大小写问题

记一下一个从昨天一直找到今天才找到原因的问题,希望可以帮助到也在苦苦查找原因的后来人。 有个hive开发环境,元数据库用的是mysql。然后从一个mysql迁移到另一个以后,就发生了莫名其妙的错误,表现在:mysqldump 出来,用 mysql < xxx.sql 导入以后,数据库连接正常,写入也有权限,但是对某些表插入数据的时候,莫名地报主键冲突的错误(那表的主键只有一个字段,主键约束也很简单,select 发现没有和要插入的数据重复的)。

继续阅读全文

19

关于mysql_free_result和mysql_close的解惑

之前用mysql的时候一直是在用短链接,调用mysql_store_result获取一次数据之后就直接调用:mysql_free_result(m_result); mysql_close(m_Database);

但是有两个问题:
1.当使用长连接时(即connect之后一直不close),如果最后会调用mysql_close,需不需要每次都调用mysql_free_result呢?
2.当mysql_close调用之后,m_result的数据是否还可以用。

继续阅读全文

29

浅谈数据库系统中的cache

Cache和Buffer是两个不同的概念,简单的说,Cache是加速“读”,而buffer是缓冲“写”,前者解决读的问题,保存从磁盘上读出的数据,后者是解决写的问题,保存即将要写入到磁盘上的数据。在很多情况下,这两个名词并没有严格区分,常常把读写混合类型称为buffer cache,本文后续的论述中,统一称为cache。

继续阅读全文

27

InnoDB Adaptive Flush

从 InnoDB 了解到,plugin 1.0.4 开始,提供了一个新的脏数据刷新机制,被称为: innodb_adaptive_flushing 。由于之前在各种性能测试以及线上环境的性能监控中时常遇到当 InnoDB 在进行大批量 Dirty Page 的 Flush 过程中,会对系统的整体性能造成不小的影响,所以个人对这个新机制比较感兴趣,仔细分析了下这个机制到底改善了些什么内容。

继续阅读全文

09

Innodb 表和索引结构

因为Innodb表的数据是依赖于聚集索引顺序存放,同时聚集索引和数据一块存储,普通索引也需要存放一份聚集索引。所以对于聚集索引的设计尽量按顺序写入,必免数据分页,行迁移等对性能影响的现象。另外聚集索引要设计的尽可能短。从设计上必须锁的时间,大量随机IO的出现。

继续阅读全文