热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

MySQL消息存储引擎Q4M试玩_MySQL

MySQL消息存储引擎Q4M试玩
bitsCN.com
1. 安装下载二进制包:由于我的mysql是5.1.48,从官网选择对应的包http://q4m.kazuhooku.com/dist/old/下载后解压a. 将support-files/q4m-forward 拷贝到mysql安装目录/bin下b. 将libqueue_engine.so 拷贝到mysql安装目录/lib/mysql/plugin下执行:$cat support-files/install.sql INSTALL PLUGIN queue SONAME &#39;libqueue_engine.so&#39;;CREATE FUNCTION queue_wait RETURNS INT SONAME &#39;libqueue_engine.so&#39;;CREATE FUNCTION queue_end RETURNS INT SONAME &#39;libqueue_engine.so&#39;;CREATE FUNCTION queue_abort RETURNS INT SONAME &#39;libqueue_engine.so&#39;;CREATE FUNCTION queue_rowid RETURNS INT SONAME &#39;libqueue_engine.so&#39;;CREATE FUNCTION queue_set_srcid RETURNS INT SONAME &#39;libqueue_engine.so&#39;;CREATE FUNCTION queue_compact RETURNS INT SONAME &#39;libqueue_engine.so&#39;;这时候Queue引擎的状态还是disable,重启一下mysqld就变成active了。root@test 05:50:59>show plugins;+---------------------+--------+--------------------+---------------------+---------+| Name | Status | Type | Library | License |+---------------------+--------+--------------------+---------------------+---------+| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL || partition | ACTIVE | STORAGE ENGINE | NULL | GPL || CSV | ACTIVE | STORAGE ENGINE | NULL | GPL || MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL || MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL || MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL || InnoDB | ACTIVE | STORAGE ENGINE | ha_innodb_plugin.so | GPL || INNODB_TRX | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL || INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL || INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL || INNODB_CMP | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL || INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL || INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL || INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL || QUEUE | ACTIVE | STORAGE ENGINE | libqueue_engine.so | GPL |+---------------------+--------+--------------------+---------------------+---------+安装完毕,可以开始玩一把了。2.a.创建一个QUEUE表root@test 05:52:29>create table t1 (a int , b varchar(100)) engine=queue;Query OK, 0 rows affected (0.00 sec)尝试插入一条数据: root@test 05:52:51>insert into t1 values (1,"sd");ERROR 1598 (HY000): Binary logging not possible. Message: Statement cannot be logged to the binary log in row-based nor statement-based format咿?插入失败,看样子Queue不支持binlog复制。好吧,重启把binlog禁用掉。再次执行root@test 05:57:03>insert into t1 values (1,"sd"); Query OK, 1 row affected (0.01 sec)这下插入成功了root@test 05:57:13>insert into t1 values (2,"sda"),(3,"fio"),(4,"sas");Query OK, 3 rows affected (0.00 sec)---------------------////--------------------以下内容有些是参考自官方的一个PPT。------------------////-------------------------那么QUEUE存储引擎和其他存储引擎(例如Innodb)有什么不同呢?——不支持主键和索引——支持insert/delete,但不支持update——根据插入数据的顺序进行排序——缓存select count(*)另外该存储引擎使用了多个定义的函数来简化操作,堪称傻瓜式!!!! 针对每个连接有两种模式:OWNER模式和Non-Owner模式,在进入owner模式后,该连接所拥有的数据对其他连接而言是不可见的。模式的切换使用函数来实现:a).进入Owner模式通常情况下,在发起连接后,处于Non-Owner模式,当调用函数Queue_wait()时,进入Owner 模式,根据传递给queue_wait函数的参数,会等待直到可以获得一行数据,在这之后,这行数据对其他连接而言是不可见的。Queue_wait的参数类似于如下格式:select * from t1 where queue_wait(“t1”); 等待获得t1内的一行数据,默认超时时间为60秒Select * from t1 where queue_wait(“t1: a<4”)----等待a<4的数据行 注:只支持检查数值类型的行Select queue_wait(“t1”,”t2”,30)检查t1或t2表是否有记录,若获得t1表记录,返回1,若是t2表,则返回2,若是30秒超时,返回0b)退出owner模式有两种方式:(1).调用queue_end()删除之前由queue_wait获得的行记录并返回到Non-Owner模式(2)调用 queue_abort()释放拥有的行,但不删除。关闭连接与queue_abort()的效果相同。3.内部行Id每一行都有一个内建64位的Row ID,主要用于检测冲突。Queue_rowid()----返回当前连接拥有的行的RowId,如果不拥有任何行,则返回NULLqueue_set_srcid(src_tbl_id, mode, src_row_id)src_tbl_id:用于定义源表mode: a表示删除重复行,w表示重置src_row_id:从源表获得的row id该函数用于检查记录是否已经插入了目标表里,如果为true,那么下次的插入将被忽略 作者 MySQL内核与性能优化 bitsCN.com
推荐阅读
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了通过mysql命令查看mysql的安装路径的方法,提供了相应的sql语句,并希望对读者有参考价值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
author-avatar
宝宝彪恒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有