mysql相关
jjwen
这个作者很懒,什么都没留下…
展开
-
MySQL行级锁、表级锁、页级锁详细介绍
这篇文章主要介绍了MySQL行级锁、表级锁、页级锁详细介绍,同时列举了一些实例说明,需要的朋友可以参考下页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定转载 2015-06-19 18:00:20 · 347 阅读 · 0 评论 -
explain之key_len计算
通常在优化SQL查询的时候,我们都会使用explain分析SQL执行计划,通常来说当用到组合索引的时候我们如何判断索引完全用上呢?当然高手看看表结构及SQL语句就知道到底用到了几个字段,对于不熟悉的同学呢?我们还是可以看看key_len的长度,当然这个计算还是有点复杂的,不过在你看过我这篇博客以后,相信你肯定会计算的,这难不倒聪明的你。废话不多说了,我们直接上例子。表结构如下。^_^转载 2017-02-13 17:52:07 · 458 阅读 · 0 评论 -
[innodb存储引擎]读书笔记-锁
1、行级锁并不会增加开销,只有当实现本身会增加开销时,行级锁才会增加开销,innodb不需要锁升级,一个锁和多个锁的开销是一样的。2、innodb的意向锁是表级别的锁。3、innodb_trx:记录的是当前运行的innodb事务。 innodb_locks:记录的是当前发生的锁信息。 innodb_lock_waits:记录的是锁等待的信息。4、mvcc在RR隔原创 2017-04-07 18:00:23 · 397 阅读 · 0 评论 -
真正理解mysql的事务级别
什么是事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。事务的 ACID事务具有四个特征:原子性( At转载 2017-03-30 17:41:58 · 5175 阅读 · 1 评论 -
mysql5.7新特性
新增特性Security improvements. MySQL.user表新增plugin列,且若某账户该字段值为空则账户不能使用。从低版本MySQL升级至MySQL5.7时要注意该问题,且建议DBA将使用mysql_old_password插件的账户替换为使用 mysql_native_password插件。数据库管理员可以制定账户密码自动过期策略,密码过期后必须强制进转载 2017-04-01 16:34:50 · 734 阅读 · 0 评论 -
[innodb存储引擎]读书笔记-索引
1、索引并不是越多越好,过多的索引会增加io,浪费磁盘的使用率。2、B+树中的B并不是二叉binary而是balance平衡,并不是二叉树。B+树并不能直接找到一个给定键值的具体行,而是找到行所在的页,通过把页读入内存来找到具体的行。3、B+索引在数据库有一个特点就是高扇出。4、原创 2017-04-01 17:22:57 · 222 阅读 · 0 评论 -
MySQL redo与undo
00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity) 事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生 了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来原创 2017-04-21 16:06:20 · 398 阅读 · 0 评论 -
高性能MySQL系统思维导图
构建高性能MySQL系统涵盖从单机 硬件,os ,文件系统,内存,到MySQL 本身的配置,以及schema 设计,索引设计 ,再到数据库架构上的水平和垂直拓展。转载 2017-05-12 15:49:09 · 5410 阅读 · 2 评论 -
莫名的一个mysql耗时记录
开发日志中突然会报个几百毫秒的数据库超时,看sql还是主键查询的,去中间件dbproxy日志中查看sql记录又是正常的,折腾几日无果,很是蛋疼。最终发现是开发auth服务命中了fastjson的一个bug,导致cpu处理有问题,升级fastjson后问题解决。原创 2017-08-31 11:17:29 · 315 阅读 · 0 评论 -
mysql key_len各种字段类型计算公式
char和varchar类型key_len计算公式:varchr(N)变长字段且允许NULL = N * ( character set:utf8=3,gbk=2,latin1=1)+1(NULL)+2(变长字段)varchr(N)变长字段且不允许NULL = N * ( character set:utf8=3,gbk=2,latin1=1)+2(变长字段)char(N)固定字段且原创 2017-10-10 16:27:31 · 950 阅读 · 1 评论 -
使用binary在sql查询中区分大小写
RTselect * from table where binary column like "%x";原创 2017-11-07 17:30:52 · 732 阅读 · 0 评论 -
自助搭建mysql-canal-kafka通道
该canal集成了java,无须繁琐的安装,直接配置几个参数即可实现mysql-canal-kafkaMysql 环境配置建议的 mysql 版本为 mysql5.5.39 或 mysql5.7.17 以上。一、binlog 格式设置调整 mysql 参数至如下即可。mysql> show variables like 'binlog_format';+---原创 2017-10-17 11:45:02 · 7496 阅读 · 6 评论 -
binlog2sql:从MySQL binlog得到你要的SQL
从MySQL binlog得到你要的SQL。根据不同设置,你可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。用途数据回滚主从切换后数据不一致的修复从binlog生成标准SQL,带来的衍生功能安装$ git clone https://github.com/danfengcao/binlog2sql.git$ pip install -r转载 2018-01-03 17:58:17 · 376 阅读 · 0 评论 -
mysql varchar转point类型
使用GeomFromText这个函数将字符串转成point使用astext读取point类型数据原创 2018-01-04 15:42:07 · 1984 阅读 · 0 评论 -
select warehouse
select passenger_id, count(*) total_orders,case when left(time(gmt_create),8) < "06:00:00" then date_sub(date(gmt_create),interval 1 day) else date(gmt_create) end as date, "level" as level from dai原创 2016-11-22 17:28:47 · 282 阅读 · 0 评论 -
MySQL 中隔离级别 RC 与 RR 的区别
MySQL 中隔离级别 RC 与 RR 的区别1. 数据库事务ACID特性数据库事务的4个特性:原子性(Atomic): 事务中的多个操作,不可分割,要么都成功,要么都失败; All or Nothing.一致性(Consistency): 事务操作之后, 数据库所处的状态和业务规则是一致的; 比如a,b账户相互转账之后,总金额不变;隔离性(Isolation): 多个转载 2016-10-20 12:04:23 · 4639 阅读 · 0 评论 -
MySQL 加锁处理分析
背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险转载 2015-06-19 17:58:44 · 312 阅读 · 0 评论 -
MySQL在线DDL工具pt-online-schema-change
原理pt-online-schema-change模拟了MySQL内部alter table的方式,但是其操作所更新的是复制表,所以原表不会被锁住。其原理我们通过示例进行解读:shell> pt-online-schema-change –nocheck-replication-filters –recursion-method=none –alter “add newcol int”转载 2016-04-27 17:06:21 · 443 阅读 · 0 评论 -
MySQL 5.6 my.cnf 参数说明
# 以下选项会被MySQL客户端应用读取。# 注意只有MySQL附带的客户端应用程序保证可以读取这段内容。# 如果你想你自己的MySQL应用程序获取这些值。# 需要在MySQL客户端库初始化的时候指定这些选项。#[client]#password = [your_password]port = @MYSQL_TCP_PORT@socket = @MYSQL_转载 2016-05-26 15:01:26 · 291 阅读 · 0 评论 -
MySQL5.6版本InnoDB存储引擎在线DDL变更的官方信息
5.5 InnoDB存储引擎表在线DDL5.5.1.在线DDL概述以前,InnoDB存储引擎表的许多 DDL 操作代价是非常昂贵的。许多 ALTER TABLE 操作的原理是通过创建新的空表,定义被要求的表选项和索引,然后逐行拷贝已存在记录到新表,在插入行时更新索引。在旧表所有行被拷贝完,旧表被删除和那新表被重命名为旧的表名。 MySQL5.5,和MySQL5.1 有了I转载 2016-05-27 14:37:15 · 891 阅读 · 0 评论 -
zabbix3.0.2 使用percona mysql插件来监控mysql5.7的详细实现过程
--前言上次用了zabbix自带的MySQL插件来监控mysql数据库,但是太过简陋了,对于我们dba来说,基本没有啥作用,所以需要做更详细的监控,而percona就有这个详细监控的模版以及脚本,正好拿过来用。 1, 需要安装php脚本运行环境percona监控zabbix的脚本使用php写的,所以需要准备好php运行环境,这里直接用yum安装就可以满足要求了转载 2016-05-19 14:11:53 · 1178 阅读 · 0 评论 -
MySQL5.7 利用keepalived来实现mysql双主高可用方案的详细过程
服务器准备Keepalived:192.168.13.15Keepalived:192.168.13.16MySQL-m1: 192.168.13.15Mysql-m2: 192.168.13.16 1,在m1、m2上准备mysql5.7环境在两台服务器上安装mysql5.7,安装mysql参考如下:http://blog.csdn.net/mc转载 2016-05-19 14:13:39 · 1943 阅读 · 0 评论 -
Mysql压测工具mysqlslap 讲解
在mysql5.1以后的版本:客户端带了个工具mysqlslap可以对MySQL进行压力测试:可以使用mysqlslap --help来显示使用方法:Default options are read from the following files in the given order:/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf--c转载 2016-06-02 18:22:57 · 1657 阅读 · 0 评论 -
mysql&numa&swap
近日遇到一个故障,发现数据库机器使用了swap,导致了访问超慢发现是numa未启动numactl --interleave=all 所致。先下线机器,关闭mysql,重启mysql,故障消除numactl --interleave=all service mysqld start原创 2016-06-30 16:17:54 · 773 阅读 · 0 评论 -
解决批量mysqldump没法用通配符的问题
/usr/local/mysql/bin/mysqldump -uroot -p -S /tmp/mysql/mysqld.sock --default-character-set=utf8 --databases training $(mysql -uusername -ppassword -Dtraining -Bse "show tables from training where ta原创 2016-08-16 14:52:19 · 1649 阅读 · 0 评论 -
sql语句截掉某字段最后一个字符
select left(driver_city,length(driver_city)-1) from driver原创 2016-09-28 14:15:57 · 21426 阅读 · 0 评论 -
mysql5.7的新特性
1. 介绍身处MySQL这个圈子,能够切身地感受到大家对MySQL 5.7的期待和热情,似乎每个人都迫不及待的想要了解、学习和使用MySQL 5.7。那么,我们不禁要问,MySQL 5.7到底做了哪些改进,引入了哪些新功能,性能又提升了多少,能够让大家翘首以盼,甚至欢呼雀跃呢?下面就跟随我来一起了解一下MySQL 5.7的部分新功能。想要在一篇文章中介绍完MySQL 5.7的所有改转载 2016-10-26 12:02:38 · 1331 阅读 · 0 评论 -
unknown variable 'default-file
unknown variable 'default-file=/opt/redmine-2.6.0-2/mysql/my.cnf'啃爹的报错,原因是default没加s..原创 2016-10-17 17:38:17 · 2180 阅读 · 1 评论 -
mysql数据库MyISAM和InnoDB两个存储引擎的索引实现方式
下面主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式:1. MyISAM索引实现:1)主键索引:MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM主键索引的原理图:(图myisam1)这里设表一共有三列,假设我们以Col1为主键,图myisam1是一个MyISAM表的主索引(Prim转载 2016-10-19 15:02:05 · 400 阅读 · 0 评论 -
mysqlbinlog日志delete转成insert脚本
cat hf.txt | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@[1-9]=//g' | sed 's/@[1-1][0-7]=//g'原创 2018-03-01 18:12:33 · 2816 阅读 · 0 评论