-
Mysql分区技术的理论
所属栏目:[MySql教程] 日期:2016-10-09 热度:151
一、基本理论 在mysql大数据处理上,水平分表技术是很常用的,但是分表技术带来了PHP处理的很大开销,为了解决这个弊端Mysql5.1以后以插件的方式增加了一个新的技术--分区技术。 分区技术是在逻辑层进行的水平分表,对于应用程序而言还是一张表,Mysql5.1[详细]
-
高性能的MySQL(5)索引策略-索引和表的维护
所属栏目:[MySql教程] 日期:2016-10-09 热度:125
维护表有三个主要的目的: 1、找到并修复损坏的表。 对于MyISAM存储引擎来说,表损坏通常是系统崩溃导致的。其他的引擎也会由于硬件的问题,MySQL本身的缺陷或者操作系统的问题导致索引的损坏。 损坏的索引,会导致查询返回错误的结果或者莫须有的主键冲突[详细]
-
MySQL常见面试问题总结(四)
所属栏目:[MySql教程] 日期:2016-10-09 热度:191
副标题#e# 091 数据库死锁概念 多数情况下,可以认为如果一个资源被锁定,它总会在以后某个时间被释放。而死锁发生在当多个进程访问同一数据库时,其中每个进程拥有的锁都是其他进程所需的,由此造成每个进程都无法继续下去。简单的说,进程A等待进程B释放[详细]
-
MySQL常见面试问题总结(三)
所属栏目:[MySql教程] 日期:2016-10-09 热度:113
副标题#e# 061 如何删除表? 答案:运行命令 drop table table_name; 062 创建索引 对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查[详细]
-
MySQL中如何实现类似Oracle的序列
所属栏目:[MySql教程] 日期:2016-10-03 热度:154
Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的; 但在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长、开始索引、是否循环等;若需要迁移数据库,则对于主键这块,也是个头大的问题。 本[详细]
-
MySQL表结构的同步
所属栏目:[MySql教程] 日期:2016-10-03 热度:126
现在全身心投入到MySQL中。 项目要求:将开发环境中的数据库的修改同步至线上环境。 开发者给出的解决办法是:利用像Python 中的South框架,自动将开发环境的变更同步至生产环境。这个对于DBA来说是无法承受的(除非是创建数据库结果类似的语句)。数据库[详细]
-
原版MySQL中如何恢复单个InnoDB数据库表
所属栏目:[MySql教程] 日期:2016-10-03 热度:67
Percona 中的 xtrabackup 真是个好工具, 简单的介绍的他的功能: 1、创建热备份(主要依靠innodb的 crash recovery 功能) 2、增量备份 3、直接对备份文件压缩打包 4、负载小 在测试最新版本2.0时,发现问题: importing and exporing individual tables[详细]
-
MySQL中删除大表的性能问题
所属栏目:[MySql教程] 日期:2016-10-03 热度:87
微博上讨论MySQL在删除大表engine=innodb(30G+)时,如何减少MySQL hang的时间,现做一下简单总结:(微博地址:http://weibo.com/1642466057/yuPz2guYJ) 当buffer_pool很大的时候(30G+),由于删除表时,会遍历整个buffer pool来清理数据,会导致MySQL[详细]
-
MySQL中如何批量修改表字段属性
所属栏目:[MySql教程] 日期:2016-10-03 热度:176
测试库中有将近300张表,其中有278张表的fid,uid字段需要作出修改。 解决办法是自动生成修改字段属性的SQL语句。 用于生成SQL的语句: select CONCAT('alter table ',TABLE_NAME,' modify ',COLUMN_NAME,' varchar(50) ;') from information_schema.COLUMN[详细]
-
MySQL中的行复制
所属栏目:[MySql教程] 日期:2016-10-03 热度:119
MySQL基于行的复制可以最大化保证主从复制的一致性,对于RBR(基于行复制) 和SBR(基于语句复制),相信大家已经很熟知,下面记录的是行复制在二进制日志总记录的情况。 基于行的复制是与位置相关的,binlog里面只记录相关表发生改变的列的数据。其中引入[详细]
-
MySQL 5.5的半同步复制
所属栏目:[MySql教程] 日期:2016-10-03 热度:75
在保证数据库性能的前提下,怎么保证数据的一致性呢? 在MySQL 5.5版本中即支持异步复制又支持半同步复制。 1、当slave 连接master的时候,它会指出它是否支持半同步复制。 2、当master启用 semisynchronous replication.并且至少有一台slave也启用了该功[详细]
-
MySQL中的主从复制一致性检测
所属栏目:[MySql教程] 日期:2016-10-03 热度:187
在MySQL主从复制过程中,常常需要对某些重要的表进行一致性检查。 由于主从数据在同步时存在一定的延迟,因此直接读取服务器数据的方式无法严格保证信息的一致性。在数据在同步完全结束之前,一直处于不断变化且并不完整的状态下。锁表的可能实现这个问题[详细]
-
MySQL中的异常信息诊断
所属栏目:[MySql教程] 日期:2016-10-03 热度:166
今天要介绍的是Percona中的pt-stalk工具。 有些问题间歇性的发生,监控信息也许根本来不及采集信息,MySQL的锁定或活动的高峰通常没有留下任何数据来分析。这个是pt-stalk存在的意义, Pt-stalk 会监测一个触发条件,然后收集相关信息,该工具会将信息写入[详细]
-
MySQL主从复制的延迟监测
所属栏目:[MySql教程] 日期:2016-10-03 热度:193
主从复制延迟的监测,我以前的做法是通过比较show slave statusG中的两个变量的差值(Read_Master_Log_Pos,Exec_Master_Log_Pos),将差值设置为一个自己认为合理的范围,Seconds_Behind_Master 没有适用过,今天做一次解析: Seconds_Behind_Master 是通[详细]
-
MySQL的日常整理
所属栏目:[MySql教程] 日期:2016-10-02 热度:149
记录工作的点点滴滴: 今天遇到case 1: 在测试机上,start slave 出现假死现象,数据库能够连接, show processlist;显示:队列等待master 从错误日志里面看到: 120831 16:20:59 [ERROR] /usr/local/mysql3307/libexec/mysqld: Disk is full writing './m[详细]
-
MySQL多IDC部署的注意事项
所属栏目:[MySql教程] 日期:2016-10-02 热度:62
目前暂时还没有哪款数据库产品是专门针对跨IDC进行的优化,在理论上被业界认为最优的方案是采用基于Paxos协议(暂时只有google做出了实现,google f1),今天只讨论MySQL在这方面的注意事项: 对于跨IDC的情况基本都会设计到以下问题: 1、MySQL多IDC的数[详细]
-
MySQL中如何避免使用SWAP
所属栏目:[MySql教程] 日期:2016-10-02 热度:165
当物理内存的数量不能容纳数据的时候,os会把虚拟内存中的数据写到磁盘上,此时的交换对于运行在操作系统中的进程是透明的。 交换对与MySQL性能有很大的影响,对于Innodb存储引擎它对内存中的数据锁住全局互斥量,如果此时导致了磁盘的IO,那么所有的动作[详细]
-
MySQL准备语句:Prepared Statements
所属栏目:[MySql教程] 日期:2016-10-02 热度:93
MySQL准备语句(Prepared Statements), 使用增强的二进制客户端/服务器协议在客户端和服务器之间高效的发送数据,可以通过支持这种行协议的编程库来访问准备语句。 创建准备语句时,客户端库会像服务器发送一个实际查询的原型,然后服务器对该原型进行解析[详细]
-
关于MongoDB schema-free vs MySQL DDL
所属栏目:[MySql教程] 日期:2016-10-02 热度:129
文档数据库(Document-orient Database)支持Schema-Free,他的一行记录格式为:{name: 外观设计, value: 直板}},实际上是使用KEY/VALUE存储的mongo采用的是BSON二进制编码,因此空间上来说应该会比JSON省一些的,解析的时候按照JSON解析。每一个Document都[详细]
-
关于MySQL Innodb_flush_method
所属栏目:[MySql教程] 日期:2016-10-02 热度:64
innodb_flush_log_at_trx_commit 决定了事务日志何时write,flush innodb_flush_method确定了日志及数据文件如何write、flush。show variables显示该变量为空,那说明被设置了默认值(fdatasync) 下面我们先从Linux IO上理解一下文件是如何打开、写入、刷[详细]
-
对MySQL中误操作的思考
所属栏目:[MySql教程] 日期:2016-10-02 热度:115
作为一名DBA需要有着严谨的工作态度。 两台测试DB Server A, Server B, 默认存储引擎InnoDB.有这样一个需求:需要将A中所有的表结构同步到B中。当时是这样做的: mysqldump -no-data...... 导出mysql表的文件后结果又将这些文件应用到了Server A 中,可想[详细]
-
高并发下的MySQL解析
所属栏目:[MySql教程] 日期:2016-10-02 热度:85
工作中进行SQL优化的情况下,常常有这样的问题,SQL已经全部利用索引,请求的数据量较小, 总的数据量不大的情况下,仍有很多慢查询的出现(我们规定是20ms)。这个时候就要关注我们的并发量,事务锁,的情况。 对于游戏来说,DB存在大量的insert 、update[详细]
-
如何把MySQL服务添加到服务器的系统服务中
所属栏目:[MySql教程] 日期:2016-10-02 热度:62
1、了解MySQL程序路径 MySQL数据目录: /home/mysql/data MySQL程序目录:/usr/local/mysql5 2、修改MySQL服务启动程序 [root@lyq314 ~]# vim /usr/local/mysql5/share/mysql/mysql.server 46 basedir=/usr/local/mysql5 47 datadir=/home/mysql/data 3、拷[详细]
-
MySQL 5.5.30的源码编译安装过程
所属栏目:[MySql教程] 日期:2016-10-02 热度:111
0、安装cmake [root@lyq314 ~]# tar -zxvf cmake-2.8.11.2.tar.gz [root@lyq314 cmake-2.8.11.2]# ./configure [root@lyq314 cmake-2.8.11.2]# make [root@lyq314 cmake-2.8.11.2]# make install 1、添加mysql用户和组 [root@lyq314 ~]#groupadd mysql [ro[详细]
-
mysql如何授权远程IP连接
所属栏目:[MySql教程] 日期:2016-10-01 热度:88
新安装的MySQL是默认不开户远程访问权限的,也就不能外部连接MySQL。这样对想远程调用MySQL的数据很不方便。下面我们来看下如何设置允许远程连接MySQL数据库。 登录MySQL mysql -uroot -p 如果无法登录可以使用find / -name mysql搜索mysql程序的路径,比[详细]