随笔分类 -  MysqL

摘要:函数 语句 阅读全文
posted @ 2018-10-15 10:24 温柔的风 阅读(2085) 评论(0) 推荐(0) 编辑
摘要:mysql数据库跑着跑着突然有那么几秒或者十几秒所有的sql都不响应,就好像是所有的表被锁住一样,但是实际上都没有加锁。但会发现数据库卡几秒,磁盘IO很高,在疯狂地读写盘,其实此时mysql正在刷脏页。 什么是脏页?Innodb在更新数据时,只更新了内存的数据页,但并没有更新磁盘。看下图把数据页从磁 阅读全文
posted @ 2018-10-05 17:02 温柔的风 阅读(567) 评论(0) 推荐(0) 编辑
摘要:产生的原因 事务访问数据时会自动加MDL锁,也就是元数据读锁。这个事务访问数据不是当前读,不是forupdate,只是普通的select。事务修改元数据的时候,会自动给表加MLD写锁。也就是加写锁,别的表都不能访问该表数据了。在项目大规模上线改表的时候,有时候会给网站下线,上线成功后才会打开。举例: 阅读全文
posted @ 2018-10-05 14:55 温柔的风 阅读(159) 评论(0) 推荐(0) 编辑
摘要:我们在设计数据表的时候,经常会考虑到各种问题,比如:用户都需要什么数据?需要在数据表中保存哪些数据?哪些数据是经常访问的数据?如何提升检索效率? 如何保证数据表中数据的正确性,当插入、删除、更新的时候该进行怎样的约束检查? 如何降低数据表的数据冗余度,保证数据表不会因为用户量的增长而迅速扩张? 如何 阅读全文
posted @ 2018-10-01 20:04 温柔的风 阅读(631) 评论(0) 推荐(0) 编辑
摘要:首先 MySQL 是典型的 C/S 架构,即 Client/Server 架构,服务器端程序使用的 mysqld。整体的 MySQL 流程如下图所示: 你能看到 MySQL 由三层组成: 连接层:客户端和服务器端建立连接,客户端发送 SQL 至服务器端; SQL 层:对 SQL 语句进行查询处理; 阅读全文
posted @ 2018-10-01 10:10 温柔的风 阅读(246) 评论(0) 推荐(0) 编辑
摘要:对应Msql数据库需要监控什么?怎么对这些要监控的资源进行监控 对数据库服务的可用性进行监控并不是在数据库服务器写一个脚本监控数据库的进程或者端口是否存在,仅仅这一点是不够的,数据库的进程或者端口存在并不意味着数据库可以对外提供服务,必须实际的通过网络连接到数据库中,并且在数据库中执行一些简单的脚本 阅读全文
posted @ 2018-09-29 12:51 温柔的风 阅读(147) 评论(0) 推荐(0) 编辑
摘要:在从库的客户端执行show slave status\G; 有一个Seconds_Behind_Master,意思是从库执行的事务或者sql落后主库多长时间,还可以说是从库是主库多少秒之前的状态。 主从同步出现的延迟问题原因及解决方案 根本原因一、 重放中继日志超时 原因二、 主库的从库太多,导致复 阅读全文
posted @ 2018-09-27 21:50 温柔的风 阅读(893) 评论(0) 推荐(0) 编辑
摘要:需求 由于公司的项目运营了四年之久,数据量庞大,有的表已经达到了几百M,为了不影响查询效率,需要定期把一些日志老数据删除,公司负责人把之前的清理数据文档发来作为参考,发现了一些比较陌生的字眼,百度一看,原来是Mysql事件。 了解 熟悉linux系统的人都知道linux的cron计划任务,能很方便地 阅读全文
posted @ 2018-06-21 15:43 温柔的风 阅读(7121) 评论(0) 推荐(0) 编辑
摘要:覆盖索引Btree除了可以帮助加快过滤数据和找到数据内容之外,还可以排序、分组,其实还可以通过Btree直接获取数据。Btree索引和hash索引不同,在Btree索引的叶子节点存储了索引的关键字的值,所以如果我们可以通过关键字直接获取索引查询中需要的数据,那么也就没必要读取数据行的信息了。这种包含 阅读全文
posted @ 2018-04-15 16:24 温柔的风 阅读(155) 评论(0) 推荐(0) 编辑
摘要:一、大量的数据修改最好做分批处理 假如需要对1000万条数据做删除/修改处理,那么可以分批处理,每次只删除/修改1000行记录,并且为了减少对主从复制从服务器的压力,可以在执行完成之后暂停几秒,以给主从同步数据有一个时间缓冲。比如写一个存储过程,来对数据做分批删除/修改/暂停操作,避免主从复制延迟以 阅读全文
posted @ 2018-02-28 22:14 温柔的风 阅读(579) 评论(0) 推荐(0) 编辑
摘要:先说一下Mysql常见的两种引擎,一种是Myisam,另一种是Innodb。 Myisam的数据存储有三种后缀类型的文件,.MYD,.MYI,.frm,而.MYI就是Myisam存储的索引文件,.MYD是数据存储文件,所以说Myisam数据和索引是分开的。 在MYI文件里,存储的是一棵树,查找的方式 阅读全文
posted @ 2018-02-24 13:11 温柔的风 阅读(644) 评论(0) 推荐(0) 编辑
摘要:一、表结构一样 二、 表结构不一样或者取部分列 阅读全文
posted @ 2018-02-23 13:41 温柔的风 阅读(1386) 评论(0) 推荐(0) 编辑
摘要:我们通常对数据库进行的增删插检操作,是针对数据库中的文件。mysql数据库中还有一些表(是view,只能做select操作)记录了现有表的meta data,比如某个column的名字,它的定义是什么等等。 information_schema 是MySQL系统自带的数据库,提供了对数据库元数据的访 阅读全文
posted @ 2018-02-23 10:49 温柔的风 阅读(231) 评论(0) 推荐(0) 编辑
摘要:场景:比如,有一张表,专门记录业务里的唯一数据记录,这张表里如果存在此唯一数据的记录就更新此行数据的某个字段,如果此唯一数据不存在,那么就添加一条最新数据。 一贯操作:如果不知道mysql有 ON DUPLICATE KEY UPDATE 这种操作的话,一般的做法都是先select此表,如果存在就u 阅读全文
posted @ 2018-02-21 11:10 温柔的风 阅读(3461) 评论(0) 推荐(0) 编辑
摘要:需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。 这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务 读取缓存步骤一般没有什么问题,但是一 阅读全文
posted @ 2018-02-20 07:59 温柔的风 阅读(1382) 评论(0) 推荐(0) 编辑
摘要:1. MySQL持久化数据,Redis只读数据redis在启动之后,从数据库加载数据。读请求:不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取写请求:数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)2. 阅读全文
posted @ 2018-02-20 00:15 温柔的风 阅读(1420) 评论(0) 推荐(0) 编辑
摘要:Ctrl+M 创建一个新的连接Ctrl+N 使用当前设置新建连接Ctrl+F4 断开当前连接 对象浏览器F5 刷新对象浏览器(默认)Ctrl+B 设置焦点于对象浏览器 SQL 窗口Ctrl+T 新建查询编辑器Ctrl+E 设置焦点于 SQL 窗口Ctrl+Y 重做 Ctrl+Z 撤销 Ctrl+X 阅读全文
posted @ 2018-02-09 02:02 温柔的风 阅读(1039) 评论(0) 推荐(0) 编辑
摘要:我们在分析SQL性能的时候,会使用到show index from table_name命令,会返回出下面的列 下面来说一下每个列的含义 1.Table 表的名称。 2.Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 3.Key_name 索引的名称。 4.Seq_in_i 阅读全文
posted @ 2018-01-30 14:55 温柔的风 阅读(977) 评论(0) 推荐(0) 编辑
摘要:打开帖子直接一张醒目的图,是阿里巴巴的Java开发手册对Mysql相关的要求。 看看下面的回复 灵剑 存储过程没有版本控制,版本迭代的时候要更新很麻烦。存储过程如果和外部程序结合起来用,更新的时候很难无感升级,可能需要停服。存储过程不利于将来分库分表。存储过程的功能不一定够强大,业务扩展之后可能会发 阅读全文
posted @ 2018-01-30 01:34 温柔的风 阅读(3358) 评论(0) 推荐(1) 编辑
摘要:一、安装Nginx ①安装依赖扩展 ②下载Nginx源码包 ③创建用户名和用户组 ④解压并安装 ⑤启动nginx服务 ⑥关闭防火墙或者开放80端口 访问IP,测试nginx是否安装成功 二、安装MySQL-5.7.19 ①下载安装包 ②创建mysql用户和用户组 ③解压安装包并创建data目录 ④初 阅读全文
posted @ 2018-01-30 00:32 温柔的风 阅读(280) 评论(0) 推荐(0) 编辑