在上篇中,我们介绍了MySQL中的全局锁和表锁. 今天,我们专注于介绍一下行锁,这个在日常开发和面试中常常困扰我们的问题. 1.行锁基础 由于全局锁和表锁对增删改查的性能都会有较大影响,所以,我们自然会想到, 只需要对有修改的行加锁就行了,这就是行锁. 在事务中,事务1更新了一行主键为1的数据行,那么,在这个事务释放锁之前,事务2是不能操作的. 另外,有一个很多人容易混淆的概念,就是行锁什么时候释放? 搞清这个事情,需要了解什么叫作 两阶段锁. 什么是两阶段锁呢?举个例子你就明白了. 这里事务2…
0.前言 MySQL按照加锁的范围,分为全局锁.表级锁.行级锁. 本文作为上篇,主要介绍MySQL的全局锁 和 表级锁. 重要的实战总结为,如何安全地变更一个表的表结构. 1.全局锁 定义: 全局锁就是对整个数据库实例加锁. 全局锁语法: Flush tables with read lock (FTWRL) 当你使用这个命令后,整个库处于只读状态,之后其他线程的数据更新语句(DML).数据定义语句(DDL)都会被阻塞. 场景:不支持事务的引擎(如MyISAM),做全库的逻辑备份. 不过我们一般…
杨奇龙 前阿里数据库团队资深DBA 主要负责淘宝业务线,经历多次11.11,有海量业务访问DB架构设计经验. 目前就职于有赞科技DBA,负责数据库运维工作,熟悉MySQL 性能优化,故障诊断,性能压测,对NoSQL感兴趣,希望与大家多多交流,彼此一起成长. 内容摘要 压测方法论 为什么要压测 影响因素 统计的指标 常用的压测工具 合理的压测平台 参考 这个是此次分享的大纲,本次分享其实相对比较简单,偏向于“纸上谈兵” 不涉及具体的实践操作,没有介绍工具如何使用 ,更多是介绍我对MySQL 压测的…
MySQL里面的锁可以分为:全局锁,表级锁,行级锁. 一.全局锁:对整个数据库实例加锁.MySQL提供加全局读锁的方法:Flush tables with read lock(FTWRL)这个命令可以使整个库处于只读状态.使用该命令之后,数据更新语句.数据定义语句和更新类事务的提交语句等操作都会被阻塞.使用场景:全库逻辑备份.风险:1.如果在主库备份,在备份期间不能更新,业务停摆2.如果在从库备份,备份期间不能执行主库同步的binlog,导致主从延迟官方自带的逻辑备份工具mysqldump,当m…
摘要:POLARDB是阿里云ApsaraDB数据库团队研发的基于云计算架构的下一代关系型数据库,其最大的特色是计算节点与存储节点分离,借助优秀的RDMA网络以及最新的块存储技术.POLARDB不但满足了公有云计算环境下用户业务快速弹性扩展的刚性需求,同时也满足了互联网环境下用户对数据库服务器高可用的需求.本文就带领大家了解什么是“云原生数据库”,云原生数据库的标准是什么,如何定义以及为何如此定义?为大家介绍下一代云原生数据库POLARDB的架构.产品设计.未来工作等内容.   以下内容根据演讲嘉…
重新学习MySQL数据库10:MySQL里的那些日志们 同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等.本文主要描述错误日志文件. 1.MySQL日志文件系统的组成 a.错误日志:记录启动.运行或停止mysqld时出现的问题. b.通用日志:记录建立的客户端连接和执行的语句.…
问题1:Jdbc 如何连接阿里云服务器上的MySQL数据库? 解决: 上截图: 其中IP是阿里云服务器的公网IP地址. 问题2:   刚开始接手开发的时候,使用Navicat连接阿里云服务器上的数据后,可以在Navicat上正常查看数据. 但将阿里云服务器上的mysql数据库连接配置到JDBC中,启动项目却启动报错,说连接不上. 解决: 后来不得已请教大神,才发现当时数据库为了安全做了IP限制.由此我便查的资料,解除限制,因为是测试数据库,所以将权限设为允许所有IP访问了. 后台报错截图: me…
针对数据库里即使设置了varchar类型的字段, 值输入中文报错的情况,是因为数据库的默认编码类型不支持汉字输入. utf-8 可以编译全球通用的所有语言符号. 由1-6个可变字节组成,有非常严格的排列规则, 能够快速准确的完成编译. 在mysql里, utf-8被写成utf8, 不是默认编码格式, 需要在workbench里设置.当然非windows系统也可以用命令行 1  如果是新建数据库需要支持中文,很简单,在创建新数据时候,吧charset改成下面:以后该数据库就支持中文了 2  如果是…
使用Navicat连接阿里云服务器上的MySQL数据库   1.首先打开Navicat,文件>新建连接> 2,两张连接方法 1>常规中输入数据库的主机名,端口,用户名,密码 这种直接连就可以了 第2种方法: 常规中输入数据库的信息,主机名用localhost ssh中输入服务器信息…
什么是云栖神侠传: 云栖社区(http://yq.aliyun.com/?utm_source=yqdg),是阿里云面向开发者群体的开放型社区.在云栖社区中,活跃着许多阿里技术大牛,他们在自己的技术领域都是佼佼者,具有一定的业界影响力.在社区,他们通过撰写技术博文.解答技术难题,为开发者贡献着自己的能量. 他们,就是云栖社区的技术神侠! 他们之中包括: 数据库神侠:阿里云数据库专家 周正中(德哥).林晓斌(丁奇): Java开发及架构神侠:淘宝架构师 杨志宏(青霖): 微服务技术神侠:阿里巴巴高…