MySQL
sofia1217
这个家伙很懒,什么都没有留下...
展开
-
如果有人问你数据库的原理,叫他看这篇文章
一提到关系型数据库,我禁不住想:有些东西被忽视了。关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata 。但很少有文章讲解数据库是如何工作的。你可以自己谷歌/百度一下『关系型数据库原理』,看看结果多么的稀少【译者注:百度为您找到相关结果约1,850,000个…】,而且找到的那些文章都很短。现在如果你查找最近时髦的技术(大数据、NoSQL或JavaScript...转载 2020-04-19 23:34:23 · 822 阅读 · 0 评论 -
MySQL-Bug:InnoDB COUNT(*) 优化
https://blog.csdn.net/shaochenshuo/article/details/72475340https://github.com/mysql/mysql-server/commit/510dd48bf510dc0a3bda9e62cede698325d05fddhttps://github.com/mysql/mysql-server/commit/23dc12f...原创 2020-02-20 15:29:51 · 244 阅读 · 0 评论 -
percona慢查询分析工具:pt-query-digest使用介绍
一、pt-query-digest参数介绍.pt-query-digest --user=anemometer --password=anemometerpass --review h=192.168.11.28,D=slow_query_log,t=global_query_review \ --history h=192.168.11.28,D=slow_query_log,t转载 2015-10-21 20:39:32 · 3335 阅读 · 0 评论 -
mydumper备份原理和使用方法
mydumper介绍MySQL自身的mysqldump工具支持单线程工作,依次一个个导出多个表,没有一个并行的机,这就使得它无法迅速的备份数据。mydumper作为一个实用工具,能够良好支持多线程工作,可以并行的多线程的从表中读入数据并同时写到不同的文件里,这使得它在处理速度方面快于传统的mysqldump。其特征之一是在处理过程中需要对列表加以锁定,因此如果我们需要在工作时段执行转载 2015-11-06 12:49:49 · 3965 阅读 · 0 评论 -
mysqldump参数大全
Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数参数说明--all-databases , -A导出全部数据库。mysqldump -uroot -p --all-databases--all-tablespaces , -Y导出全部表空间。mysqldump -uroot -p --all-d转载 2015-11-05 21:07:43 · 534 阅读 · 0 评论 -
mysql事务锁等待时间
记得以前,当出现:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction,要解决是一件麻烦的事情;特别是当一个SQL执行完了,但未COMMIT,后面的SQL想要执行就是被锁,超时结束,DBA光从数据库无法着手找出源头是哪个SQL锁住了;有时候看看 show engine innodb status,转载 2015-12-28 15:11:09 · 4657 阅读 · 0 评论 -
mysql索引总结
文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细。直接搬过来了关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓转载 2016-03-04 22:06:04 · 301 阅读 · 0 评论 -
MySQL常见性能命令
版权声明:本文为博主原创文章,未经博主允许不得转载。1, 查看MySQL服务器配置信息 Java代码 mysql> show variables; 2, 查看MySQL服务器运行的各种状态值 Java代码 mysql> show global status; 3, 慢查询 J转载 2016-03-04 22:07:48 · 293 阅读 · 0 评论 -
MariaDB缓冲区详解
以前对于各种引擎也稍微有点理解,可是却并没有深入研究过,最近打算看看Innodb引擎, InnoDB 存储引擎前言:数据库:物理操作系统文件或其他形式文件类型的集合,数据库实例:有数据库后台进程/线程以及一个共享内存区组成mysql被设计成了一个单进程多线程架构的数据库开始:1、默认的InnoDB存储引擎的后台线程有7个,4个IO thread ,1个master th转载 2016-01-14 17:06:26 · 3651 阅读 · 0 评论 -
mysql client常见error总结
mysql 客户端连接服务器,客户端报对应的错误号总结: 1. Error 104mysql@longxibendi-dba-u-abcd00.longxibendi:~$perror 104OS error code 104: Connection reset by peer这个是由于server端 backlog 满了 导致。 2. Er转载 2016-03-02 17:04:30 · 698 阅读 · 0 评论 -
mysql数据库主备表校验与修复
用pt-table-checksum校验数据一致性主从数据的一致性校验是个头疼的问题,偶尔被业务投诉主从数据不一致,或者几个从库之间的数据不一致,这会令人沮丧。通常我们仅有一种办法,热备主库,然后替换掉所有的从库。这不仅代价非常大,而且类似治标不治本的方案,让人十分不安。因此我们需要合适的工具,至少帮我们回答下面三个问题:是从库延迟导致了用户看到的数据不一致,还是真的主从数转载 2016-03-03 11:15:43 · 1719 阅读 · 0 评论 -
mysql分表和表分区详解
mysql分表和表分区详解为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。什么是分表?分表是将一个大转载 2016-03-04 22:05:20 · 377 阅读 · 0 评论 -
innodb_flush_log_at_trx_commit
innodb_buffer_pool_size如 果用Innodb,那么这是一个重要变量。相对于MyISAM来说,Innodb对于buffer size更敏感。MySIAM可能对于大数据量使用默认的key_buffer_size也还好,但Innodb在大数据量时用默认值就感觉在爬了。 Innodb的缓冲池会缓存数据和索引,所以不需要给系统的缓存留空间,如果只用Innodb,可以把这个值设为内存转载 2016-03-04 22:06:34 · 317 阅读 · 0 评论 -
MySQL数据库服务器优化详细
MySql服务器的后台管理程序,要想使用客户端程序,该程序必须运行,因为客户端通过连接服务器来访问数据库。下面让我们以服务器的系统变量和状态变量为根据,优化我们的MySql数据库服务。在这之前,我们需要掌握以下方法:查看MySql状态及变量的方法:Mysql> show status ——显示状态信息(扩展show status like 'XXX')Mys转载 2016-03-04 22:07:20 · 319 阅读 · 0 评论 -
MySQL事务隔离级别以及MVCC机制
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirt转载 2016-03-02 12:27:03 · 11033 阅读 · 4 评论 -
mysql timeout调研与实测
mysql的timeout有多少种,之间的区别时什么?本文从实测和代码分析的角度验证了不同的超时参数的作用。接触网络编程我们不得不提的就是超时,TCP建立连接的超时,数据报文发送/接收超时等等,mysql在超时上也做足了功夫。123456Variable_name Default Valueconnect_timeout 5interactive_timeout 28800ne转载 2016-05-04 15:57:03 · 343 阅读 · 0 评论 -
关于MySQL InnoDB存储引擎中的锁
2,INNODB_LOCKS表a) lock_id:锁的id以及被锁住的空间id编号、页数量、行数量b) lock_trx_id:锁的事务id。c) lock_mode:锁的模式。d) lock_type:锁的类型,表锁还是行锁e) lock_table:要加锁的表。f)转载 2017-04-04 20:45:25 · 609 阅读 · 0 评论 -
xtrabackup 2.4.6 的源码安装
首先解压缩源码包[root@mysqldb2 setup]# tar -zxvf percona-xtrabackup-2.4.6.tar.gz检查依赖包并安装 — 注:bzr不知道什么包。rpm -q –qf ‘%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n’ \cmake gcc gcc-c++ libaio libaio-devel a转载 2017-08-05 11:03:43 · 1102 阅读 · 0 评论 -
mysql错误吗
· 错误消息信息列在share/errmsg.txt文件中。“%d”和“%s”分别代表编号和字符串,显示时,它们将被消息值取代。 · 错误值列在share/errmsg.txt文件中,用于生成include/mysqld_error.h和include/mysqld_ername.h MySQL源文件中的定义。 · SQLSTATE值列在share/errmsg.txt文件转载 2017-11-02 14:34:59 · 478 阅读 · 0 评论 -
mysql timeout知多少
1.timeout变量知多少打开mysql,用show variables like '%timeout%'命令一看,不看不知道,一看吓一跳,结果如下面所示,这么多timeout相关变量,一下就吓尿了。。原来对mysql的了解原来是如此的不够,好了,这么些timeout究竟各自是什么意思,花了一下午去学习,做了几个小实验,总算明白了一二,如有错误,请不吝赐教啊。mysql> show转载 2017-11-20 10:32:28 · 360 阅读 · 0 评论 -
/etc/bashrc和/etc/profile傻傻分不清楚?
首先我们来看系统中的这些文件, 一般的系统可能会有/etc/profile/etc/bashrc~/.bashrc~/.profile而如果系统是 ubuntu 或者 debian 的话, 就不会有 /etc/bashrc 而会有 /etc/bash.bashrc 文件.以上这些就是常用 profile 和 bashrc 文件了. 要理解这些文件之前还需要了解 Shell, Shell 的...转载 2018-04-17 20:24:01 · 2383 阅读 · 0 评论 -
SQL执行过程中的性能负载点【转】
一、SQL执行过程1、用户连接数据库,执行SQL语句;2、先在内存进行内存读,找到了所需数据就直接交给用户工作空间;3、内存读失败,也就说在内存中没找到支持SQL所需数据,就进行物理读,也就是到磁盘中查找;4、找到的数据放到内存中,在内存进行数据过滤再放到会话工作空间。5、假设会话工作空间需要暂存结果集进行排序,但空间不足的话,就会借用磁盘tmpdir,最后再将结果返回给用户。...转载 2019-03-17 20:05:03 · 175 阅读 · 0 评论 -
【转载】MYSQL-GroupCommit
组提交(group commit)是MYSQL处理日志的一种优化方式,主要为了解决写日志时频繁刷磁盘的问题。组提交伴随着MYSQL的发展不断优化,从最初只支持redo log 组提交,到目前5.6官方版本同时支持redo log 和binlog组提交。组提交的实现大大提高了mysql的事务处理性能,下文将以innodb 存储引擎为例,详细介绍组提交在各个阶段的实现原理。redo log的组提交...转载 2019-03-17 20:06:25 · 277 阅读 · 0 评论 -
MySQL binlog 组提交与 XA(分布式事务、两阶段提交)【转】
概念: XA(分布式事务)规范主要定义了(全局)事务管理器(TM: Transaction Manager)和(局部)资源管理器(RM: Resource Manager)之间的接口。XA为了实现分布式事务,将事务的提交分成了两个阶段:也就是2PC (tow phase commit),XA协议就是通过将事务的提交分为两个阶段来实现分布式事务。两阶段:1)prepare 阶段...转载 2019-03-17 20:08:01 · 286 阅读 · 0 评论 -
show engine innodb status解读
注:以下内容为根据《高性能mysql第三版》和《mysql技术内幕innodb存储引擎》的innodb status部分的个人理解,如果有错误,还望指正!! innodb存储引擎在show engine innodb status(老版本对应的是show innodb status)输出中,显示除了大量的内部信息,它输出就是一个单独的字符串,没有行和列,内容分为很多小段,每一段对应inn转载 2017-02-19 19:14:19 · 1522 阅读 · 0 评论 -
mysql show processlist命令 详解
processlist 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令。1. 进入 mysql/bin 目录下输入 mysqladmin processlist;2. 启动 mysql ,输入 show processlist;如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当转载 2017-02-19 18:59:20 · 279 阅读 · 0 评论 -
MySQL binlog 组提交与 XA(两阶段提交)
1. XA-2PC (two phase commit, 两阶段提交 ) XA是由X/Open组织提出的分布式事务的规范(X代表transaction; A代表accordant?)。XA规范主要定义了(全局)事务管理器(TM: Transaction Manager)和(局部)资源管理器(RM: Resource Manager)之间的接口。XA为了实现分布式事务,将事务的提交分成了转载 2017-01-01 21:15:04 · 682 阅读 · 0 评论 -
两阶段提交协议与三阶段提交协议
在分布式系统中通常存在着多个机器节点,每个节点只能控制自己事务的成功与失败而无法获知其他节点的事务执行结果,这时当事务操作跨越多个节点时就会存在无法满足分布式系统ACID中的数据一致性(Consistency)问题,这时就需要一个协调节点了统一调到分布式系统中其他节点的事务操作。 在分布式系统中通常存在两个问题,可用性、数据一致性,通常我们会在可用性与数据一致性之间做一个衡量,在这需求中就产转载 2017-01-01 21:15:31 · 676 阅读 · 0 评论 -
分布式事务 - 两阶段提交与三阶段提交
在分布式系统中,著有CAP理论,该理论由加州大学伯克利分校的Eric Brewer教授提出,该理论阐述了在一个分布式系统中不可能同时满足一致性(Consistency)、可用性(Availability),以及分区 容错性(Partition tolerance)。一致性在分布式系统中数据往往存在多个副本,一致性描述的是这些副本中的数据在内容和组织上的一致。可用性可用性描述了系统对转载 2017-01-01 21:16:16 · 10363 阅读 · 1 评论 -
一分钟了解两阶段提交2PC(运营MM也懂了)
上一期分享了“一分钟了解mongoDB”【回复“mongo”阅读】,本期将分享分布式事务的一种实现方式2PC。一、概念二阶段提交2PC(Two phase Commit)是指,在分布式系统里,为了保证所有节点在进行事务提交时保持一致性的一种算法。二、背景在分布式系统里,每个节点都可以知晓自己操作的成功或者失败,却无法知道其他节点操作的成功或失败。转载 2017-01-01 21:16:36 · 1387 阅读 · 0 评论 -
浅谈mysql的两阶段提交协议
前两天和百度的一个同学聊MySQL两阶段提交,当时自信满满的说了一堆,后来发现还是有些问题的理解还是比较模糊,可能是因为时间太久了,忘记了吧。这里再补一下:) 5.3.1事务提交流程MySQL的事务提交逻辑主要在函数ha_commit_trans中完成。事务的提交涉及到binlog及具体的存储的引擎的事务提交。所以MySQL用2PC来保证的事务的完整性。MySQL的2PC过转载 2017-01-01 21:16:59 · 1831 阅读 · 0 评论 -
MySQL事务提交过程(一)
MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中。今天我们来讨论下事务的提交过程。 MySQL体系结构 由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交,通过两阶段提交,来保证存储引擎和二进制日志的一致。转载 2017-01-01 21:18:17 · 2914 阅读 · 0 评论 -
MySQL事务提交过程(二)
上一篇文章我们介绍了在关闭binlog的情况下,事务提交的大概流程。之所以关闭binlog,是因为开启binlog后事务提交流程会变成两阶段提交,这里的两阶段提交并不涉及分布式事务,当然mysql把它称之为内部xa事务(Distributed Transactions),与之对应的还有一个外部xa事务。这里所谓的两阶段提交分别是prepare阶段和commit阶段。内部xa事务主要转载 2017-01-01 21:18:45 · 2595 阅读 · 0 评论 -
MySQL临时表
首先,临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。因此在不同的连接中可以创建同名的临时表,并且操作属于本连接的临时表。 创建临时表的语法与创建表语法类似,不同之处是增加关键字TEMPORARY,如: CREATE TEMPORARY TABLE 表名 (…. ) 临时表使用有一些转载 2017-02-19 18:58:16 · 330 阅读 · 0 评论 -
金融数据安全
转载 2016-05-05 09:10:19 · 515 阅读 · 0 评论 -
mysql delayed 延迟插入和参数DELAY_KEY_WRITE
mysql delayed 延迟插入2010-09-27 10:063155人阅读评论(0)收藏举报mysqlinsert服务器kill磁盘存储DELAYED 的使用 使用延迟插入操作 DELAYED调节符应用于INSERT和REPLACE语句。当DELAYED插入操作到达的时候, 服务器把数据行放入一个队列中,并立即给客户端返回一个状态信息,这样客户 端就转载 2015-09-29 15:19:35 · 2214 阅读 · 0 评论 -
MySQL服务器端参数详解和优化建议
MySQL服务器端核心参数详解和优化建议整理者:金官丁版 本:适用5.0.*~5.1.40网 站:www.mysqlops.com服务器端参数项? lower_case_table_names? max_connect_errors ? interactive_timeout and wait_timeout? binlog-format and transaction转载 2015-09-29 15:21:04 · 345 阅读 · 0 评论 -
redo和undo的区别
redo--> undo-->datafileinsert一条记录时, 表跟undo的信息都会放进 redo 中, 在commit 或之前, redo 的信息会放进硬盘上. 故障时, redo 便可恢复那些已经commit 了的数据.redo->每次操作都先记录到redo日志中,当出现实例故障(像断电),导致数据未能更新到数据文件,则数据库重启时须redo,重新把数据更新到数据文件转载 2015-08-12 21:56:18 · 575 阅读 · 0 评论 -
mysql 查询缓存 query_cache_type
sql_cache意思是说,将查询结果放入查询缓存中。sql_no_cache意思是查询的时候不缓存查询结果。sql_buffer_result意思是说,在查询语句中,将查询结果缓存到临时表中。这三者正好配套使用。sql_buffer_result将尽快释放表锁,这样其他sql就能够尽快执行。使用 FLUSH QUERY CACHE 命令,你可以整理查询缓存,以更好的利用它转载 2015-09-29 15:22:13 · 461 阅读 · 0 评论 -
Mysql查询缓存碎片、缓存命中率及Nagios监控
Mysql 的优化方案,在互联网上可以查找到非常多资料,今天对Mysql缓存碎片和命中率作了详细了解,个人作了简单整理。一、Mysql查询缓存碎片和缓存命中率。mysql> SHOW STATUS LIKE 'qcache%';+-------------------------+-----------+| Variable_name | V转载 2015-09-29 15:22:44 · 417 阅读 · 0 评论