随笔分类 -  MySQL

摘要:前言 近期在工作在遇到了几个和以前自己理解的一些不一样的死锁问题,因此想做一个mysql的死锁系列,梳理一下mysql引发死锁的一些场景,由于个人认知终归有限,本文所列的死锁场景不代表mysql全部的死锁触发原因,希望给其他同学启示,如能在工作中恰好起到帮助作用,那就更好了。 死锁是什么 如果有多个 阅读全文
posted @ 2018-01-14 23:05 conanwang 阅读(205) 评论(0) 推荐(0) 编辑
摘要:为什么要使用FTWRL MySQL dba在日常工作中,数据备份绝对是工作频度最高的工作内容之一。当你使用逻辑方式进行备份(mydumper,mysqldump)或物理方式进行备份(percona-xtrabackup),为了保证数据的一致性,这两种备份方式都会在备份过程中执行 flush tabl 阅读全文
posted @ 2017-05-31 17:15 conanwang 阅读(4669) 评论(1) 推荐(0) 编辑
摘要:一 介绍 在笔者支持业务过程中,经常遇到开发咨询replace into 的使用场景以及注意事项,这里做个总结。从功能原理,性能和注意事项上做个说明。二 原理2.1 当表中存在主键但是不存在唯一建的时候。表结构 CREATE TABLE `yy` ( `id` bigint(20) NOT NULL 阅读全文
posted @ 2016-12-07 19:48 conanwang 阅读(1202) 评论(0) 推荐(0) 编辑
摘要:一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强。关于完整性,关连性我举个例子,大家就会明白了。 有二张表,一张是用户表,一张是订单表: 1,如果我删除了用户表里的用户 阅读全文
posted @ 2016-11-10 12:51 conanwang 阅读(1906) 评论(0) 推荐(0) 编辑
摘要:在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的 阅读全文
posted @ 2016-11-10 11:49 conanwang 阅读(8302) 评论(0) 推荐(1) 编辑
摘要:一、背景 我们的MySQL数据库有一张10个Text的字段的表,还包括几个char和varchar字段,由于业务需求,我在表中加多一个Text字段的时候,插入记录的出现了下面的错误: Row size too large. The maximum row size for the used tabl 阅读全文
posted @ 2016-11-08 14:38 conanwang 阅读(751) 评论(0) 推荐(1) 编辑
摘要:一 参数意义 innodb_flush_log_at_trx_commit 如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动 阅读全文
posted @ 2016-10-21 20:54 conanwang 阅读(300) 评论(0) 推荐(0) 编辑
摘要:背景: 用innodb_table_monitor来查看表内部的存储信息和索引结构是一个好的办法。再之前的MySQL 字符串主键和整型主键分析中提到了一些内容,但没有细讲,现在来好好的分析下。使用方法: 建立一张 innodb_table_monitor的表: 表建立之后,会每隔1m20s间隔把监控 阅读全文
posted @ 2016-10-10 16:15 conanwang 阅读(1087) 评论(0) 推荐(0) 编辑
摘要:一客户机房新装的UPS不太稳定,好几次意外断电,第3次意外断电之后问题终于来了, 数据库起不来了…… 数据库的硬件环境是一台IBM DS5020存储,2台IBM X3850 X5 软件环境是Linux与Oracle 10g RAC 数据库2个节点的asm都能正常启动,但数据库实例启动到mount状态 阅读全文
posted @ 2016-10-09 20:15 conanwang 阅读(1223) 评论(0) 推荐(0) 编辑
摘要:年前抽空到兄弟公司支援了一下Oracle迁移MySQL的测试,本想把MySQL调优到接近Oracle的性能即可,但经过 @何_登成 @淘宝丁奇 @淘宝褚霸 @淘伯松 诸位大牛的指导和帮助(排名不分先后,仅按第一次为此CASE而骚扰的时间排序),不断修正方案,最终获得了比Oracle更好的性能,虽然是 阅读全文
posted @ 2016-10-09 17:04 conanwang 阅读(349) 评论(0) 推荐(0) 编辑
摘要:参数介绍 innodb_flush_log_at_trx_commit 0: 每隔1s,系统后台线程刷log buffer,也就是把redo日志刷盘,这里会调用fsync,所以可能丢失最后1s的事务。 1: 每次commit时,刷redo日志,确定fsync刷盘 2: 每次提交时,刷redo日志到文 阅读全文
posted @ 2016-10-07 11:22 conanwang 阅读(3062) 评论(0) 推荐(0) 编辑
摘要:MySQL的三种复制方式 asynchronous replication 原理:在异步复制中,master写数据到binlog且sync,slave request binlog后写入relay-log并flush disk优点:复制的性能最好缺点:master挂掉后,slave可能会丢失事务代表 阅读全文
posted @ 2016-10-07 10:49 conanwang 阅读(5087) 评论(0) 推荐(0) 编辑
摘要:注:本文大部内容参考自互联网相关文章 1.MySQL大小写敏感规则 MySQL中,一个库会对应一个文件夹,库里的表会则以文件的方式存放在文件夹内,所以,操作系统对大小写的敏感性决定了数据库和表的大小写敏感(MySQL有一个只读的系统变量lower_case_file_system,其值反映的正是当前 阅读全文
posted @ 2016-10-02 15:19 conanwang 阅读(4166) 评论(0) 推荐(1) 编辑
摘要:Part1:写在最前 在MysQL5.6版本中,可以把undo log 回滚日志分离到一个单独的表空间里;其缺点是不能回收空间大小,until MysQL5.7,but MariadDB10.1暂不支持。 本文介绍并演示MysQL5.7是如何在线收缩undo log的。 undo log日志是保存在 阅读全文
posted @ 2016-09-29 15:22 conanwang 阅读(2985) 评论(0) 推荐(0) 编辑
摘要:innodb_flush_method这个参数控制着innodb数据文件及redo log的打开、刷写模式,对于这个参数,文档上是这样描述的: 有三个值:fdatasync(默认),O_DSYNC,O_DIRECT 默认是fdatasync,调用fsync()去刷数据文件与redo log的buff 阅读全文
posted @ 2016-09-26 14:16 conanwang 阅读(517) 评论(0) 推荐(0) 编辑
摘要:下面我们一起来看一篇解决mariadb grant ERROR 1045 (28000): Access denied for user问题,希望文章能够帮助到各位朋友。 用mariadb也有一段时间了,常用命令和语法,基本没变。比较复杂一点的,例如replication,也没有发现根mysql有什 阅读全文
posted @ 2016-09-23 14:12 conanwang 阅读(4978) 评论(0) 推荐(0) 编辑
摘要:一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制线程只有一个sql thread用于binlog的apply,所以难怪slave在高并发时会远落后m 阅读全文
posted @ 2016-09-21 02:31 conanwang 阅读(287) 评论(0) 推荐(0) 编辑
摘要:导读 遇到SLAVE延迟很大,binlog apply position一直不动的情况如何排查? 问题描述 收到SLAVE延迟时间一直很大的报警,于是检查一下SLAVE状态(无关状态我给隐去了): 可以看到,延迟确实很大,而且从多次show slave status的结果来看,发现binlog的po 阅读全文
posted @ 2016-09-20 23:13 conanwang 阅读(597) 评论(0) 推荐(0) 编辑
摘要:有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间。 假如是从MySql客户端调用,将客户端的文件导入,则需要使用 load local data in 阅读全文
posted @ 2016-09-20 22:34 conanwang 阅读(1546) 评论(0) 推荐(0) 编辑
摘要:0、导读 我们知道,MySQL里可以动态修改事务隔离级别(TRANSACTIOIN ISOLATION LEVEL),既可以加 GLOBAL 关键字直接修改全局的设置,也可以加 SESSION 关键字只修改当前会话的设置。那么,如果两个关键字都不加,会出现什么情况呢? 1、调整事务隔离级别 MySQ 阅读全文
posted @ 2016-09-20 22:16 conanwang 阅读(1476) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示