« 类别 mysql 下的文章
通过分区(Partition)提升MySQL性能
什么是数据库分区? 数据库分区是一种物理数据库设计技术,DBA和数据库建模人员对其相当熟悉。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。 分区主要有两种形式://这里一定要注意行和列的概念(row是行,column是列) 1. 水平分区(Horizontal Partitioning)这种形式分区是对表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集 体分割(1个或多个分区)。所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。 举个简单例子:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录。(朋奕注:这里具体使用的分区方式我们后面再说,可以先说一点,一定要通过某个属性列来分割,譬如这里使用的列就是年份) 2. 垂直分区(Vertical Partitioning) 这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列 被划分到特定的分区,每个分区都包含了其中的列所对应的行。 举个简单例子:一个包含了大te…
Sphinx 2.0.3 发布,全文搜索引擎
全文搜索引擎 Sphinx 发布了最新的 2.0.3 版本,可从这里 下载 。 这是自 0.9.9 版本以来的第一个稳定发行版本,包括稳定的经过大量测试的实时索引技术,64位的 MVA 支持,基于表达式的ranker、关键字字典等多项新特性,完整列表请看 changelog . Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python, Perl ,Ruby等,同时为MySQL也设计了一个存储引擎插件。 更多关于 Sphinx 的详细信息,或者下载地址请点 这里
MySQL高可用性大杀器之MHA
提到MySQL高可用性,很多人会想到 MySQL Cluster ,亦或者 Heartbeat + DRBD ,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有 MMM , PRM , MHA 等方案可供选择:MMM是最常见的方案,可惜它问题太多( What’s wrong with MMM , Problems with MMM for MySQL );至于PRM,它还是个新项目,暂时不推荐用于产品环境,不过作为 Percona 的作品,它值得期待;如此看来目前只能选MHA了,好在经过 DeNA 大规模的实践应用证明它是个靠谱的工具。 安装: 作为前提条件,应先配置 MySQL复制 ,并设置 SSH公钥免密码登录 。下面以CentOS为例来说明,最好先安装 EPEL ,不然YUM可能找不到某些软件包。 MHA由Node和Manager组成,Node运行在每一台MySQL服务器上,也就是说,不管是MySQL主服务器,还是MySQL从服务器, 都要安装Node,而Manager通常运行在独立的服务器上,但如果硬件资源吃紧,也可以用一…
MYSQL INSERT DELAYED 详解
INSERT DELAYED 用于INSERT语句的DELAYED选项是MySQL相对于标准SQL的扩展。如果您的客户端不能等待 INSERT完成,则这个选项是非常有用的。当您使用MySQL进行日志编写时,这是非常常见的问题。您也可以定期运行SELECT和UPDATE语句, 这些语句花费的时间较长。 当一个客户端使用INSERT DELAYED时,会立刻从服务器处得到一个确定。并且行被排入队列,当表没有被其它线程使用时,此行被插入。 使用INSERT DELAYED的另一个重要的好处是,来自许多客户端的插入被集中在一起,并被编写入一个块。这比执行许多独立的插入要快很多。 使用DELAYED时有一些限制: ·INSERT DELAYED仅适用于MyISAM, MEMORY和ARCHIVE表。对于MyISAM表,如果在数据文件的中间没有空闲的块,则支持同时采用SELECT和INSERT语句。在这些情况 下,基本不需要对MyISAM使用INSERT DELAYED。 ·INSERT DELAYED应该仅用于指定值清单的INSERT语句。服务器忽略用于INSERT DELAYEDSELECT语…
(转)Mysql分区表局限性总结
Mysql5.1已经发行很久了,本文根据官方文档的翻译和自己的一些测试,对Mysql分区表的局限性做了一些总结,因为个人能力以及测试环境的原因,有可能有错误的地方,还请大家看到能及时指出,当然有兴趣的朋友可以去官方网站查阅。 本文测试的版本 mysql select version(); ++ | version() | ++ | 5.1.33-log | ++ 1 row in set (0.00 sec) 一、关于Partitioning Keys, Primary Keys, and Unique Keys的限制 在5.1中分区表对唯一约束有明确的规定,每一个唯一约束必须包含在分区表的分区键(也包括主键约束)。 这句话也许不好理解,我们做几个实验: CREATE TABLE t1 ( id INT NOT NULL, uid INT NOT NULL, PRIMARY KEY (id) ) PARTITION BY RANGE (id) (PARTITION p0 VALUES LESS THAN(5) ENGINE = INNODB, PARTITION p1 VA…
MyWebSQL 2.2 发布,基于Web的MySQL管理客户端
MyWebSQL 2.2 发布了! MyWebSql 是一个PHP开发的、基于Web的MySQL数据库管理客户端,类似 phpMyAdmin,但界面更好看。除了可以操作数据库数据外,MyWebSql 还可以对包括视图、存储过程、触发器和函数在内的对象进行控制,支持数据和查询结果的导入\导出。MyWebSql 还内置一个带语法着色功能的SQL编辑器。 该版本的改进: 增加了在启动时登录到多台服务器的功能; 增加了使用“SET @命令的会话变量选项; 添加了复制不同名称的table/view/procedure/view的右键选项。 表编辑器漏洞修复: 使用set/enum字段创建多张表单会导致查询错误; 无法在SQL中为多个字段生成默认值; 新创建的数据库名出现在数据库列表的结尾,而不是正确的地方; 在某些情况下SQL导入失败; 每次拖放对象时都会询问,尽管用户设置了不再询问。 详细信息 : http://mywebsql.net/downloads/changes/version-2-2/ 官网地址: http://mywebsql.net/ 下载地址: http://mywebsql…
mysql 查看binlog,slowlog,查看锁表情况,当前连接
shell mysqlbinlog log-file 使用mysqldumpslow命令获得日志中显示的查询摘要来处理慢查询日志,例如: [zzx@bj37 data]$ mysqldumpslow bj37-slow.log 一.1 获取锁等待情况 可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上的表锁定争夺: mysql show status like Table%; +-+-+ | Variable_name | Value | +-+-+ | Table_locks_immediate | 105 | | Table_locks_waited | 3 | +-+-+ 2 rows in set (0.00 sec) 可以通过检查Innodb_row_lock状态变量来分析系统上的行锁的争夺情况: mysql show status like innodb_row_lock%; +-+-+ | Variable_name | Value | +-+-+ | Innodb_row_lock_current_waits…
数据库管理工具 DBeaver
DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。DBeaver 提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,浏览和导出数据,处理BLOB/CLOB 数据,修改数据库结构等等。 授权协议: 免费,非开源 开发语言: Java 操作系统: 跨平台 收录时间: 2011年03月02日 软件首页 软件下载
Mysql的HandlerSocket插件
http://who0168.blog.51cto.com/253401/511944 PHP使用实例 php ?php $host = 'localhost' ; $port = 9998 ; $port_wr = 9999 ; $dbname = 'hstestdb' ; $table = 'hstesttbl' ; //GET $hs = new HandlerSocket $host , $port ; if ! $hs - openIndex 1 , $dbname , $table , HandlerSocket :: PRIMARY , 'k,v' echo $hs - getError , PHP_EOL ; die ; $retval = $hs - executeSingle 1 , '=' , array 'k1' , 1 , 0 ; var_dump $retval ; $retval = $hs - executeMulti array array 1 , '=' , array 'k1' , 1 , 0 , array 1 , '=' , array 'k2…
MySQL插件HandlerSocket + php
HandlerSocket 是MySQL的一个插件,用来实现 NoSQL 功能,用于跳过MySQL的SQL层面,直接访问内部的InnoDB存储引擎。 bash wget http: // dev.mysql.com / get / Downloads / MySQL- 5.5 / MySQL-client-5.5.11-1.rhel4.i386.rpm wget http: // dev.mysql.com / get / Downloads / MySQL- 5.5 / MySQL-devel-5.5.11-1.rhel4.i386.rpm wget http: // dev.mysql.com / get / Downloads / MySQL- 5.5 / MySQL-server-5.5.11-1.rhel4.i386.rpm wget http: // dev.mysql.com / get / Downloads / MySQL- 5.5 / MySQL-shared-5.5.11-1.rhel4.i386.rpmrpm -ivh MySQL-client-5.5.11-1…
传播、沟通、分享