MySQL数据库存储引擎MyISAM和InnoDB的对比详解

十二月 9, 2011 by · 2 Comments 

之前Eugene兄已经写过两篇关于myisam转innodb引擎的文章,我今天把myisam和innodb引擎的差别做了一个整理,目的是让大家更深的理解两个引擎的差别之处,让大家在项目初期选择数据库引擎或者中期改变引擎的时候少走弯路。

一、简单介绍
1.MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。 Read more

原创文章,转载请注明: 文章地址MySQL数据库存储引擎MyISAM和InnoDB的对比详解

MySQL源码编译configure命令详解

十一月 1, 2011 by · Leave a Comment 

‘configure’  configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]… [VAR=VALUE]…

To assign environment variables (e.g., CC, CFLAGS…), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
-h, –help              display this help and exit
–help=short        display options specific to this package
–help=recursive    display the short help of all the included packages
-V, –version           display version information and exit
-q, –quiet, –silent   do not print `checking…’ messages Read more

原创文章,转载请注明: 文章地址MySQL源码编译configure命令详解

MySQL数据库服务器端核心参数详解和推荐配置之三

十月 26, 2011 by · 7 Comments 

导读

MySQL手册上也有服务器端参数的解释,以及参数值的相关说明信息,现针对我们大家重点需要注意、需要修改或影响性能的服务器端参数,作其用处的解释和如何配置参数值的推荐,此事情拖了不少时间,为方便大家帮忙纠错(注:总是断断续续写的,可能存在笔误),先以文章的方式发布到网站,后续确定没问题,将会通过新浪微博的微盘提供PPT下载,方便学习和参考。

l  innodb_flush_log_at_trx_commit  AND  sync_binlog

innodb_flush_log_at_trx_commit = N

N=0  – 每隔一秒,把事务日志缓存区的数据写到日志文件中,以及把日志文件的数据刷新到磁盘上;

N=1  – 每个事务提交时候,把事务日志从缓存区写到日志文件中,并且刷新日志文件的数据到磁盘上;

Read more

原创文章,转载请注明: 文章地址MySQL数据库服务器端核心参数详解和推荐配置之三

MySQL数据库开发的赶集网三十六条军规

十月 23, 2011 by · Leave a Comment 

原创文章,转载请注明: 文章地址MySQL数据库开发的赶集网三十六条军规

MySQL数据库的SQL语句EXPLAIN执行计划详解

十月 20, 2011 by · Leave a Comment 

原创文章,转载请注明: 文章地址MySQL数据库的SQL语句EXPLAIN执行计划详解

HandlerSocket的优势和缺陷阐述

十月 20, 2011 by · 2 Comments 

HandlerSocket的优势和特点:

1)         支持多种查询模式

HandlerSocket目前支持索引查询(主键索引和非主键的普通索引均可),索引范围扫描,LIMIT子句,也即支持增加、删除、修改、查询完整功能,但还不支持无法使用任何索引的操作。另外支持execute_multi() 一次网络传输多个Query请求,节省网络传输时间。

2)         处理大量并发连接

HandlerSocket的连接是轻量级的,因为HandlerSocket采用epoll() 和worker-thread/thread-pooling架构,而MySQL内部线程的数量是有限的(可以由my.cnf中的handlersocket_threads/handlersocket_threads_wr参数控制),所以即使建立上千万的网络连接到HandlerSocket,也不会消耗很多内存,它的稳定性不会受到任何影响(消耗太多的内存,会造成巨大的互斥竞争等其他问题,如bug#26590,bug#33948,bug#49169)。

Read more

原创文章,转载请注明: 文章地址HandlerSocket的优势和缺陷阐述

HandlerSocket的原理

十月 19, 2011 by · 7 Comments 

HandlerSocket的应用场景:

MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产品,比如Redis/MongoDB等。不可否认,在做一些简单查询(尤其是PK查询)的时候,很多NoSQL产品比MySQL要快很多,而且前台网站上的80%以上查询都是简洁的查询业务。

MySQL通过HandlerSocket插件提供了API访问接口,在我们的基准测试中,普通的R510服务器单实例Percona/XtraDB达到了72W+QPS(纯读),如果采用更强劲的CPU增加更多的网卡,理论上可以获得更高的性能。而同等条件下Memcached仅有40W+QPS(纯读),并且在R510上Memcached单实例已经无法提升性能,因为Memcached对内存的一把大锁限制了它的并发能力。 Read more

原创文章,转载请注明: 文章地址HandlerSocket的原理

MySQL数据库入门常识

十月 16, 2011 by · Leave a Comment 

第四章 MySQL入门常识

4.1产品介绍

   MySQL是一款广受世人欢迎的开源领域的关系型数据库产品,而且是开放式的架构。最早,由MySQL AB公司开发与维护,后MySQL AB公司被SUN收购,并做了不少改进与特意加强对Solaris系统的支持,最后SUN又被甲骨文收购,从而成为传统数据库领域龙头老大的产品,从而使甲骨文公司在商业数据库与开源数据库领域市场占有份额都第一,同时也产生了很多的纷争与担忧,以及对开源模式的反思。

MySQL属于传统的关系型数据库产品,开放式的架构使用户选择性强,同时社区开发人数众多,其功能较稳定与性能优异,且遵守GPL协议的前提下,可以免费使用,也为其推广与使用注入了活力。在其发展过程中,支持的功能越来越多,性能也不断提高,支持的平台也越来越多。 Read more

原创文章,转载请注明: 文章地址MySQL数据库入门常识

MySQL存储引擎:MyISAM数据自动备份还原方案

十月 13, 2011 by · Leave a Comment 

前言

几乎所有的资料整理都在Linux系统、MySQL5.0.27版本和MyISAM存储引擎环境下试验和总结的,以及参考前人经验与MySQL官网资料进行总结的。关于MySQL 的安装与升级,我相信很多MySQL_DBA都比我厉害,MySQL官网与其他网站上应该有很多相关资料:

关于安装写一条简单的命令与一些必要的说明:

       1. 源码安装的脚本

./configure –prefix=/usr/local/mysql –with-mysqld-user=mysql –with-charset=gb2312 –with-extra-charsets=all

由于我的数据库只使用gb2312,所以为了一致性就这样设置,你也可以设置为自己的类型。

       2.必要说明:

为了方便程序的升级以及性能更高,应该把MySQL程序与数据文件放在不同的目录下面,最好还是不同的磁盘上。若起用了日志功能,最好是把MySQL程序、数据文件和日志文件分别放在三个不同的磁盘上,从而避免程序升级带来的潜在而致命的问题,提高数据的读写能力(注:毕竟磁盘的转速有限)。

第一部分:数据库的备份与还原 Read more

原创文章,转载请注明: 文章地址MySQL存储引擎:MyISAM数据自动备份还原方案

系统工程师工作手册之合并后角色关系检查

九月 24, 2011 by · 3 Comments 

4.2.4合并后人物关系检查

#生成家族成员表中的重复角色

# Host: 192.168.2.31

# Database: zebra1

# Table: ‘UNION_USER’

#

CREATE TABLE IF NOT EXISTS `SEPT_USER` (

`CHARID` int(10) unsigned NOT NULL default ’0′,

`COUNT` int(10) unsigned NOT NULL default ’0′,

`NAME` char(32) NOT NULL default ”,

PRIMARY KEY  (`CHARID`) Read more

原创文章,转载请注明: 文章地址系统工程师工作手册之合并后角色关系检查

Next Page »

知识共享许可协议
作品采用知识共享署名 2.5 中国大陆许可协议进行许可。