- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 [MySQL] 复制(3)- 创建主备复制(从另一个服务器开始复制)
前一篇讲到的创建主备复制是假设主备库都为刚刚安装好的数据库,也就是说两台服务器上的数据相同,这不是典型的案例,大多数情况下有一个已经运行了一段时间的主库,然后用一台新安装的备库与之同步,本文讲述在这种情况下该如何配置。1、在备库的主机上安装MySQL,注意备库的版本不能低于主库。2、备份主库,复制备份文件到备库,并在备库上恢复。可以有很多种方法实现上述过程,我这里介绍的是利用innob
2013-11-29 16:01:09 3074
原创 [MySQL] 复制(2)- 创建主备复制(主备库都为空)
本文适用于新安装的主库和备库,主库的配置主库需要打开二进制日志,并制定一个唯一的server id,my.cnf文件中增加或修改如下内容:server_id=60log-bin = /data/mysql/log/mysql-bin备库的配置备库my.cnf的配置如下:server_id=61read_only=1log_bin = /data/mysql/log/m
2013-11-27 15:10:40 2407
原创 [MySQL] 复制(1)- 原理和架构
MySQL复制解决的基本问题是让一台服务器的数据与其它服务器保持同步,它具有如下的特征:1)异步:这意味着,在同一时间点上备库的数据可能与主库不一致,并无法保证它们之间的延迟;2)向后兼容:也就是说,备库的版本可以高于主库的版本,但不能低于主库的版本下面是MySQL复制的原理图:大致分为三个步骤:1)主库所有的数据更改都记录到二进制日志2)备库通过I/O线程把主库的
2013-11-26 17:46:14 2586
原创 [MySQL] 索引与性能(4)- 排序
我们知道B树索引是有序的,那么可不可以通过只扫描索引就能完成order by操作呢?答案是肯定的,但条件也比较苛刻:只有当索引的列顺序和order by字句的列顺序完全一致,且order by字句中所有列的排序方式要么全部都是ASC,要么全部都是DESC,MySQL才能使用索引来对结果进行排序;如果查询需要关联多个表,则条件更苛刻,只有当order by字句中的列全部为驱动表(执行计划中)时,才能
2013-11-19 17:04:49 2985
原创 [MySQL] 索引与性能(3)- 覆盖索引
覆盖索引是指索引的叶子节点已包含所有要查询的列,因此不需要访问表数据,能极大地提高性能。覆盖索引对InnoDB的聚簇索引表特别有用,因为可以避免InnoDB二级索引的二次查询。MySQL里只有B树索引能做覆盖索引,因为必须要存储索引列的值,而哈希索引、空间索引、全文索引不可以。当发起一个覆盖索引的查询时,在explain的Extra列可以看到Using Index,下面看一个例子,在表user
2013-11-19 13:38:11 4848 1
原创 [MySQL] 索引与性能(2)- 聚簇索引
聚簇索引是一种数据存储方式,它实际上是在同一个结构中保存了B+树索引和数据行,InnoDB表是按照聚簇索引组织的(类似于Oracle的索引组织表)。InnoDB通过主键聚簇数据,如果没有定义主键,会选择一个唯一的非空索引代替,如果没有这样的索引,会隐式定义个主键作为聚簇索引。下图形象说明了聚簇索引表(InnoDB)和普通的堆组织表(MyISAM)的区别:对于普通的堆组织表来说(
2013-11-18 16:39:32 7531
原创 [MySQL] 数据类型与性能
MySQL支持的数据类型非常多,选择正确的数据类型对性能至关重要,本文谈谈如何正确选择MySQL的数据类型。整数有以下几种整数:TINYINT, SMAILLINT, MEDIUMINT, INT, BIGINT,分别使用8, 16, 24, 32, 64位存储空间。它们都有一个可选的UNSIGNED属性,表示不允许负数。你可以为整数类型指定宽度,如INT(13),但对大多数应用来说是
2013-11-15 13:23:23 3608
原创 [Oracle] 增大在线重做日志文件大小
今天发现数据库很慢,看到大量进程在等待log file switch (checkpoint incomplete),日志文件的使用情况如下:SYS@TEST15>select group#,sequence#,bytes/1024/1024 "BYTES(M)",members,archived,status from v$log; GROUP# SEQUENCE# BY
2013-11-07 14:46:15 2596
原创 [Oracle] 探讨分区(4) - 分区管理
分区交换是Oracle提供的一种用于分区表和非分区表间迁移数据的方法,它只操作数据字典,不移动数据的物理存储,因此效率非常高。它的语法如下:alter table partition_tbl exchange partition with table nonpartition_tbl;注意:分区表和非分区表之间无法直接交换,必须借助一个中间表(非分区),下面看一个例子:现在
2013-11-06 17:03:26 2556
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人