
mysql使用
gao1738
这个作者很懒,什么都没留下…
展开
-
xtrabackup8.0备份原理简析
xtrabackup8.0一致性"无锁"备份原理原创 2023-01-20 20:05:06 · 693 阅读 · 0 评论 -
关于mysql query cache和memcached…
今天大概地看了下memcached的一些材料,大致了解了它的原理与使用。给我的感觉就是,对于查询结果的缓存而言,它和mysql的query cache非常的像。都可以缓存查询的结果以避免重复的查询,最终降低负载。不同的是:1. query cache以整个sql语句为key, memcached的key是用户自己定的。2. query cache自动处理缓存数据的失效问题,memca原创 2015-01-18 20:17:17 · 467 阅读 · 0 评论 -
MySQL 的 XA 模式下的主从复制问题
看mysql手册中关于 XA 模式下的行为描述时得知: master节点执行xa prepare之后如果mysql crash了,当mysql被恢复时可以通过命令xa recover 找到之前未完成提交的xa 事务,并且通过xacommit进行提交。但是这种情况下,mysql是不会对这个xa事务记录binlog日志的。之前看的时候还不是很明白为什么mysql要这么做,前几天测试mysq原创 2015-01-18 20:19:40 · 639 阅读 · 0 评论 -
重做主从复制(尽量减少对业务的影…
sqlproxy1.7的版本是基于mysql主从复制的,有时候由于业务的原因或操作不当,会导致主从不一致。当不一致的情况很严重的时候,就需要根据master节点的数据重做主从复制。以下是一次实际操作的记录。业务环境中有一主 ip为 xxx.xxx.xxx.66 一备 ip为 xxx.xxx.xxx.67 一原创 2015-01-18 20:16:26 · 710 阅读 · 0 评论 -
通过cat 数据文件来合并 myisam表
最近在 MySQL Performance Blog上看到一篇关于快速合并myisam表的文章。http://www.mysqlperformanceblog.com/2012/11/19/concatenating-myisam-files/具体的步骤为对于表结构一样的两个表,可以直接把其中一个表的数据文件拼接到另一个后面(这主要是由于myisam数据文件是没有头结构的,即文件的第原创 2015-01-18 20:16:53 · 375 阅读 · 0 评论 -
mysql命令行工具的编辑技巧
从mysql performace blog 中学到的:1. pager例子mysql> pager morePAGER set to 'more'mysql>show variables;然后就使用more命令来显示“show variables”的输出根据我的理解, pager之后可以跟任何shell命令来编辑 pager中输出的结果,pager会使用管道把结果传递给后面的命原创 2015-01-18 20:17:07 · 2100 阅读 · 0 评论 -
FederatedX 下推语句调研
FederatedX 是mariadb 对原Federated引擎进行改进后的版本,主要区别如下:federated vs federatedxTransactions (beta feature)Supports partitions (alpha feature)New class structure which allows developers to write connec原创 2015-01-18 20:19:33 · 509 阅读 · 0 评论 -
mysql innodb 的文件系…
看《MySQL IO Performance Benchmark》(http://t.cn/zYyGMXV)学习的,记录下,有空自己测试下:1. 不要使用cfq 的io调度算法,因为随机写的性能太差,应该选用noop或deadline调度算法。2. 通常情况下首选的是xfs文件系统和innodb_flush_method=O_DIRECT3. 对于innodb_flush_method的原创 2015-01-18 20:17:30 · 392 阅读 · 0 评论 -
mysql sysbench 测试
最近尝试对mariadb 10.0 进行sysbench 的OLTP 的 RW complex 测试,测试的机器配置如下:cpu : 80核内存 : 64G硬盘 : SAS RAID1测试工具:sysbench-0.4.12操作系统调优:echo deadline >/sys/block/sda/queue/schedulerulimit -n 10240数原创 2015-01-18 20:19:36 · 457 阅读 · 0 评论 -
如何屏蔽或减轻 磁盘I/O 在数据库…
本文主要介绍通过使用缓存的方式 来屏蔽磁盘I/O对 数据库语句性能的影响。主要通过在数据库server启动时设置选项 innodb_buffer_pool_size来实现。 关于innodb_buffer_pool_size:innodb_buffer_pool_sizeCommand-Line Format--innodb_buffer_pool_size=#原创 2015-01-18 20:13:54 · 399 阅读 · 0 评论 -
mix和row模式下 mysql主从复制从节…
之前给客户部署sqlproxy来管理两个mysql节点间的复制关系。发现主从延迟特别的大,具体查看之后发现是slave上的sqlthread延迟特别大。经过一番折腾后发现了原因,这里记录一下。用户那里设置的binlog记录模式为mix模式,而导致延迟特别大的语句是一个小表(几万行)上执行的delete from... limit 0,10000在mysql5.5版本中(不确定5.6是原创 2015-01-18 20:16:07 · 2218 阅读 · 0 评论 -
MySQL XA 事务支持调研
准备往DBScale中添加分布式事务支持,最合适的方案是使用XA事务。以下是关于mysql xa事务的调研:1. mysql xa事务的语法主要有:XA START 'any_unique_id'; // 'any_unique_id' 是用户给的,全局唯一在一台mysql中开启一个XA事务XA END 'any_unique_id';标识XA事务的操作结束 XA PR原创 2015-01-18 20:18:15 · 1603 阅读 · 0 评论 -
MySQL 5.6 使用过程中碰…
1. partition表不支持query cache手册上说:“Query cache not supported. The querycache is not supported for partitioned tables. Beginning with MySQL5.6.5, the query cache is automatically disabled for queri原创 2015-01-18 20:18:25 · 836 阅读 · 0 评论 -
MySQL xa 事务局限性
最近因为要使用MySQL的xa事务来实现分布式事务所以研究了下,发现MySQL的xa事务真心很弱。。。关于XA 事务的介绍可以参考我之前的博客:http://blog.sina.com.cn/s/blog_4673e6030101c7o4.html主要的局限性为以下3点:1. 不支持savepoint,所以当一条语句操作分区表的多个分片并出现部分成功部分失败时,分布式事务无法回滚到原创 2015-01-18 20:18:42 · 899 阅读 · 0 评论 -
MySQL最大连接数限制分析
MySQL的最大连接数不只是受制于选项max-connections,同时还受制与本机物理内存和MySQL需要为每个客户端连接分配多少内存。一些连接级别的内存参数,如read_buffer_size 、sort_buffer_size,都是需要为每个连接分配。MySQL(以myisam为例)所需要的内存大致为:key_buffer_size + (read_buffer_size +原创 2015-01-18 20:18:45 · 1284 阅读 · 0 评论 -
mysql实际使用过程中碰到的一些有…
这一段时间帮客户维护sqlproxy的mysql集群过程中碰到了一些比较古怪又挺有意思的问题,记录一下:1. 主从复制延迟大主从复制延迟的问题一直都有,但用户现场是测试环境,网络没问题,应用的压力也很小,这种情况下基本上就是写的sql语句的问题了。复制的模式的mixed,对于复制安全的语句使用statement复制,不安全的使用row复制。所以导致主从延迟大的可能性主要有2方面,一种原创 2015-01-18 20:17:14 · 544 阅读 · 0 评论 -
1461错误, mysql_stmt_prepa…
今天现场咨询我们问如何处理1461错误。mysql_stmt_prepare failed! error(1461)Can't create more thanmax_prepared_stmt_count statements (current value:16382) 。给出的回复如下:max_prepared_stmt_count参数限制了同一时间在mysqld上所有ses原创 2015-01-18 20:16:44 · 1078 阅读 · 0 评论 -
查询某列最大值
本文介绍关于查询某列最大值的记录常用的一些方法。 参考自mysql用户手册和相关链接。1. 用子查询:例子: select a,b,cfrom Twhere c=(select max(c) from T)2. 让表自己和自己左外连接:例子: select t1.a, t1.b, t1.cfrom T t1 left join T t2 on t1.c where t2.a is原创 2015-01-18 20:14:29 · 958 阅读 · 0 评论 -
mysql 基础优化步骤
1. 以root用户登入mysql,执行如下语句开启慢查询日志:set global slow_query_log=1;set long_query_time=3; 注: 以上设置为临时的,重启就没了,如果需要长期打开慢查询日志可以在配置文件my.cnf中加入如下:[mysqld]--slow_query_log[={0|1} //0为关闭,1为开启,默认为0--long_que原创 2015-01-18 20:15:39 · 380 阅读 · 0 评论 -
Mysql 学习小记1
2013-1-4 mysql学习小记1. 使用 innodb_flush_method=O_DIRECT 大多数情况下可以提高数据库的写性能。在写数据时,mysql会绕过文件系统的缓存。 并且设置这个可以减少mysql的内存swap。2. 对于大表的删除策略。 如果表的数据规模特别的大,不能直接droptable,因为这样可能因为大IO导致服务器不可用。 总的思想就是一点一点原创 2015-01-18 20:17:10 · 425 阅读 · 0 评论 -
Innodb 没有主键的表插入性能问题
问题:这几天发现客户那里的mysql集群有时插入特别的慢,通过慢查询日志以及pt-query-digest得知主要是对一张表的插入特别的慢。 这张表的数据量大概有3百多万行,插入操作特别的频繁。通过开启innodb monitor得知, 并行的插入操作都阻塞在一个地方:--Thread 1284204864 has waited at dict0boot.ic line 45 for 3原创 2015-01-18 20:18:08 · 2086 阅读 · 0 评论 -
MySQL 5.6 GTID复制 乱序复制
最近一直在弄基于MySQL5.6 GTID 复制功能的DBScale高可靠测试。测试过程中发现GTID功能在某些情况下不能保证所有的事件在slave上按照与master一样的执行顺序执行。GTID复制中的事件有一个UUID和一个递增数字编号进行唯一标识。MySQL5.6可以保证同一个UUID下的事件会按照数字编号的顺序在slave上执行。但似乎不能保证不同UUID下的事件的顺序关系。原创 2015-01-18 20:18:40 · 503 阅读 · 0 评论 -
mysql ndbcluster7.0.16 升级到 7.…
昨天刚给用户做的ndbcluster升级,从版本7.0.16升级到7.2.7.其中sql节点的版本由5.1升级到5.5.1.当前线上环境目前线上ndbcluster版本为7.0.16,主要包括1个管理节点,4个数据节点,以及2个sql节点(由于这两个节点数据不同步,并只使用其中一个,其实就是一个sql节点)。线上系统中除了有ndbcluster引擎的表以外,还有一些sql节点本地的M原创 2015-01-18 20:16:10 · 811 阅读 · 0 评论 -
innodb monitor output&…
最近客户那处理了一个case,case中客户现场的mysql经常长时间hold在那里。如下是客户现场的 INNODB MONITOR OUTPUT,我们来分析下:首先是InnoDB: Warning: a long semaphore wait:--Thread 139979394471680 has waited at log0log.ic line 320 for896.00 s原创 2015-01-18 20:19:30 · 1670 阅读 · 0 评论 -
mysql 中变量的使用
本文主要是介绍mysql中变量的使用,包括用户变量,全局,会话还有局部变量。本文内容主要参考自mysql用户手册和相关链接。1. 用户变量: (本次连接有效)定义方式 set @变量名:=值 或 set @变量名=值 或 select 中@变量名:=值例子:set @a:=5 或 set@a=3 或 select @a:=sum(c1) from A;备注: 使用用户变量将阻止查询使用缓存原创 2015-01-18 20:14:32 · 496 阅读 · 0 评论 -
mysql 服务器端关于用户连接方面的…
最近在对新版本的sqlproxy进行性能与压力的测试,这里记录一下测试过程碰到的关于mysql服务器端用户连接方面的限制。1. max_allowed_packet服务端允许的最大包长度。默认情况下,mysqld会把它初始化为net_buffer_length(最大值为1M)的大小,所以如果操作的表的行的长度太大的话,比如有个TEXT或BLOB字段的话,就会失败。max_allowe原创 2015-01-18 20:16:17 · 498 阅读 · 0 评论 -
mysql 主从复制对于事件event…
首先这个event必须是在master上创建并且同步到slave上的,即通过create event语句同步到slave上的,而不能直接手动在salve上创建。通过主从同步在从节点上创建的event默认是disable的,即不会触发。例如有2个mysql实例, A 和 B, A是主。在A上执行create event 创建event c, 这个event c也会被同步到B上,但c在B上原创 2015-01-18 20:16:47 · 928 阅读 · 0 评论 -
Innodb Architecture an…
最近学习了一下percona 发布的 《Innodb Architecture andInternals》,顺道记录下,有些知识点是很熟悉的,也有些是刚知道的。。。Innodb表空间1. innodb表是索引的集合,数据直接保存在主索引的叶节点里,2级索引的页指向主所以2. 索引叶节点和非叶节点使用的是不同的segment,除此之外,还有些特殊的segment(回滚段和insertbu原创 2015-01-18 20:16:56 · 456 阅读 · 0 评论 -
如何查看mysql的某个安全漏洞在哪…
有个客户用的是5.0.22的企业版mysql,用“专业的检测工具”检测后发现有一溜的安全漏洞,然后客户想要我们修复。所谓的修复其实就是升级,所以问题就变成了哪个版本的mysql修复了这些漏洞,最好是和现在版本相近的版本以减少升级的不确定性。所谓的“专业检测工具”估计过去应该就是类似绿盟的软件,直接匹配当前的mysql版本号与securityfocus或其他国外安装漏洞发布网站上的信息。只要原创 2015-01-18 20:17:27 · 3303 阅读 · 0 评论 -
本地复制一张innodb表的数据
需求为: 要对一张数据表进行大的动作,在这之前需要进行数据备份。常用的办法如 mysqldump , select into outfile的备份效率都太低了。本文介绍一种较为高效的(直接使用文件拷贝)备份方法:假设原始数据表如下:mysql> CREATE TABLE t1 (a INT);mysql> INSERT INTO t1 VALUES (1),(2),(3);用原创 2015-01-18 20:19:21 · 517 阅读 · 0 评论 -
Mysql 参数优化
1. my.cnf中的把 innodb_buffer_pool_size=16G 别占满了内存。2. my.cnf中的把 innodb_log_buffer_size= 50M这个主要是满足大事务的需求。3. my.cnf中的把 innodb_log_file_size=4G (这个是在硬盘,所以先设大点,这个值设大点可能导致 mysql crash之后恢复会比较慢,但原创 2015-01-18 20:15:45 · 437 阅读 · 0 评论 -
mysql replication 的搭建
本文将介绍如何搭建一个最简单的mysql replication 环境。它将包括一个master主机, 和 一个slave机。master主机上的所有修改会通过replication同步到slave机器的mysql上。master主机的mysql启动在一个ubuntu11.10的机器上,ip为172.16.70.78,slave机的mysql启动在一个虚拟机里,ip为172.16.69.7原创 2015-01-18 20:14:20 · 357 阅读 · 0 评论