随笔分类 -  MySQL

摘要:1、问题描述 今天 QQ群里在讨论一个问题,在某个环境里面,需要修改单个表的多个字段,造成了数据混乱,跟理想修改的数据不一致。 1.1 模拟问题现象 # 注意: 创建的表没有主键,且 t1 表是 innodb 引擎 root@localhost [keme]>create table t1 (a i 阅读全文
posted @ 2020-06-12 23:37 keme 阅读(1208) 评论(0) 推荐(1) 编辑
摘要:1、ProxySQL 介绍 ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。 介绍 阅读全文
posted @ 2020-02-10 15:36 keme 阅读(31194) 评论(0) 推荐(27) 编辑
摘要:1 出现原因 1 出现原因 1.1 查看机器时区和MySQL的时区 #查看linux的机器时区: [root@mysql-150 ~]# date -R Wed, 23 Oct 2019 14:10:04 +0800 [root@mysql-150 ~]# date Wed Oct 23 14:10 阅读全文
posted @ 2019-10-23 15:57 keme 阅读(2224) 评论(0) 推荐(0) 编辑
摘要:1 Mydumper 介绍 Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。 Mydumper主要特性: 轻量级C语言写的 多线程备份,备份后会生成多个备份文件 事务性和非事务性表一致的快照(适用于0.2.2以上版本) 快速的文件压缩 支持导出binlog 多线程恢 阅读全文
posted @ 2019-10-16 09:24 keme 阅读(20791) 评论(0) 推荐(3) 编辑
摘要:根据加锁的范围,MySQL 里面的锁大致可以分成全局锁,表级锁,行锁。 行锁已经在前面几篇文章说过 1. 全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是Flush tables with read lock (FTWRL)。 当你需要让整个库处于只读状态的时候 阅读全文
posted @ 2019-06-21 16:57 keme 阅读(13159) 评论(1) 推荐(4) 编辑
摘要:1. Too many connections ERROR 1040 (HY000): Too many connections 导致结果: 连接数过多,导致连接不上数据库,业务无法正常进行 该错误发生在有max_connections个客户连接了mysqld服务器, 应该重启mysqld, 用更大 阅读全文
posted @ 2019-06-04 12:33 keme 阅读(1456) 评论(1) 推荐(3) 编辑
摘要:1 锁概念 1.1 什么是锁 锁是数据库系统区别于文件系统的一个关键特性。数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。例如:操作缓冲池中的LRU列表,删除、添加、移动LUR列表中的元素。 对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。My 阅读全文
posted @ 2019-04-20 09:47 keme 阅读(3930) 评论(4) 推荐(11) 编辑
摘要:一、什么影响了数据库查询速度 1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS:是TransactionsPerSeco 阅读全文
posted @ 2019-03-05 11:48 keme 阅读(733) 评论(0) 推荐(0) 编辑
摘要:在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。 1、优化的哲学 注:优化有风险,涉足需谨慎 1.1 优化可能带来的问题 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统; 阅读全文
posted @ 2019-01-29 15:49 keme 阅读(743) 评论(0) 推荐(2) 编辑
摘要:一、数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为 阅读全文
posted @ 2019-01-24 13:57 keme 阅读(700) 评论(0) 推荐(0) 编辑
摘要:1. MySQL 权限介绍 mysql中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表,我当前的版本mysql 5.7.22 。 mysql权限表的验证过程为: 先从user表中的Host,User,Password这3个字段中判断连接的ip、用 阅读全文
posted @ 2019-01-21 09:25 keme 阅读(79027) 评论(3) 推荐(33) 编辑
摘要:1 PT介绍 Percona Toolkit简称pt工具—PT-Tools,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL等,DBA熟悉掌握后将极大提高工作效率。 2 PT 安装 下载地址 :https://www 阅读全文
posted @ 2019-01-19 15:04 keme 阅读(1584) 评论(0) 推荐(2) 编辑
摘要:1. MariaDB 介绍 MariaDB数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 在MariaDB工作与在MySQL下工作几乎一模一样,她们有相同的命令、界面 阅读全文
posted @ 2019-01-18 16:51 keme 阅读(1258) 评论(0) 推荐(0) 编辑
摘要:1. Percona介绍 Percona Server由领先的MySQL咨询公司Percona发布。 Percona Server是一款独立的数据库产品,其可以完全与MySQL兼容,可以在不更改代码的情况了下将存储引擎更换成XtraDB 。 Percona团队的最终声明是“Percona Serve 阅读全文
posted @ 2019-01-17 14:06 keme 阅读(24994) 评论(1) 推荐(4) 编辑
摘要:Explain 介绍 在分析查询性能时,考虑EXPLAIN关键字同样很管用。EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而 阅读全文
posted @ 2018-10-31 14:22 keme 阅读(3361) 评论(4) 推荐(3) 编辑
摘要:索引介绍 在MySQL中,索引是高效获取数据的最重要的数据结构,通常在表数据越来越多情况下获取数据的效率开始下降,而索引或者叫做键可以有效提升效率。 理解索引工作的方式最好的办法就是把索引比喻成书的目录,当需要查看特定的章节时通过查看目录的方式往往要比查看整个书的内容要有效很多。 当索引包含多个字段 阅读全文
posted @ 2018-10-29 10:55 keme 阅读(1140) 评论(0) 推荐(1) 编辑
摘要:InnoDB 锁机制 InnoDB存储引擎支持行级锁 其大类可以细分为共享锁和排它锁两类 共享锁(S):允许拥有共享锁的事务读取该行数据。当一个事务拥有一行的共享锁时,另外的事务可以在同一行数据也获得共享锁,但另外的事务无法获得同一行数据上的排他锁 排它锁(X):允许拥有排它锁的事务修改或删除该行数 阅读全文
posted @ 2018-10-09 17:23 keme 阅读(695) 评论(2) 推荐(3) 编辑
摘要:备份类型介绍 备份类型可以分为物理备份和逻辑备份两种 物理备份是指通过拷贝数据库文件的方式完成备份,这种备份方式适用于数据库很大,数据重要且需要快速恢复的数据库 逻辑备份是指通过备份数据库的逻辑结构(create database/table语句)和数据内容(insert语句或者文本文件)的方式完成 阅读全文
posted @ 2018-09-29 16:17 keme 阅读(2186) 评论(0) 推荐(3) 编辑
摘要:MHA介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中 阅读全文
posted @ 2018-09-28 18:01 keme 阅读(733) 评论(0) 推荐(0) 编辑
摘要:MySql 复制介绍 MySQL复制允许将主实例(master)上的数据同步到一个或多个从实例(slave)上,默认情况 下复制是异步进行的,从库也不需要一直连接到主库来同步数据 MySQL复制的数据粒度可以是主实例上所有的数据库,也可以是指定的一个或多个数据库 ,也可以是一个数据库里的指定的表 M 阅读全文
posted @ 2018-09-04 08:59 keme 阅读(1615) 评论(0) 推荐(1) 编辑