![](https://img-blog.csdnimg.cn/20190513162409678.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
mysql基础与优化系列
文章平均质量分 90
主要是mysql基础与优化方面的一些文章
王道长的编程之路
学不死那就朝死里学
展开
-
mysql 监控
一、生产环境的数据库可不能裸奔啊!通过数据库的压测,你应该心里非常有数,一台什么样配置的机器,部署了一个数据库后,利用sysbench构造了多少个表和数据量,然后模拟了多少个线程压测的时候,机器的各项硬件负载在可以接受的范围内时,数据库的QPS和TPS可压测到多高。这时大致就明白数据库在高峰时期最多可让他承受多少QPS和TPS了。需要对线上系统进行完善的监控,不光是对Java系统进行监控,还得对数据库进行监控,包括对CPU、内存、网络、磁盘IO、慢查询、QPS、TPS的监控。因为如果不对数据库做监控原创 2021-07-20 16:33:59 · 267 阅读 · 0 评论 -
[面试题]25个MySQL经典面试题
经典题目1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;2、MySQL中myisam与innodb的区别,至少5点2.1 问5点不同;2.2 innodb引擎的4大特性2.3 2者selectcount(*)哪个更快,为什么3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义3.1 varchar与char的区别3.2 ...原创 2019-05-11 00:04:45 · 3416 阅读 · 1 评论 -
MySQL实战军规
文章目录一、核心军规1.1 尽量不在数据库做运算1.2 控制单表数据量1.3 保持表身段苗条1.4 平衡范式和冗余1.5 拒绝大SQL,复杂事务,大批量任务二、字段类军规2.1 用好数值字段,尽量简化字段位数2.2 把字符转化为数字2.3 优先使用Enum或Set2.4 避免使用Null字段2.5 少用并拆封Text/Blob2.6 不在数据库中存图片三、索引类军规3.1 谨慎合理添加索引3.2 ...原创 2019-05-09 22:00:44 · 269 阅读 · 0 评论 -
docker-mysql8-主从
一、准备官方镜像官方docker 镜像 https://hub.docker.com/_/mysqldocker pull mysql:latest# 创建mysql网络docker network create mysql-net --subnet 172.1.2.0/24docker volume rm $(docker volume list |awk '{if(NR>0) print $2}')主从规划roleipport复制账号passwordma原创 2020-05-24 10:20:12 · 402 阅读 · 0 评论 -
数据库中的事务与死锁
文章目录前言一、乐观锁与悲观锁1. 乐观锁:2. 悲观锁:3. 如何实现乐观锁和悲观锁4. 乐观锁和悲观锁选择标准二、共享锁和排它锁1. 共享锁(读锁)2. 排它锁(写锁)三、加锁的粒度四、事务1. 事务2. 事务的ACID特性3.隔离级别五、加锁协议1. 一次封锁协议2. 两段锁协议六、死锁1. 出现死锁的原因:2. 如何避免死锁?3. 如何预防死锁?七、InnoDB 中事务隔离性的实现:1. ...原创 2019-05-07 01:02:58 · 1702 阅读 · 0 评论 -
mysql之一:系统准备及安装
文章目录第一章 什么是Mysql第二章 安装Mysql1、安装前知识准备2、安装准备3 、编译安装配置4. 编译安装5. 修改mysql配置文件6. 创建mysql管理员7. 连接数据库:第一章 什么是MysqlMyQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,...原创 2019-05-06 14:19:10 · 288 阅读 · 0 评论 -
以MySQL为例,详解数据库索引原理(1)
文章目录一、摘要二、常见的查询算法及数据结构2.1 索引的本质2.2 常见的查询算法2.2.1 顺序查找(linear search )2.2.2 二分查找(binary search)2.2.3 二叉排序树查找2.2.4 哈希散列法(哈希表)2.2.5 分块查找2.3 平衡多路搜索树B树(B-tree)2.3.1 B Tree2.3.2 B+Tree2.3.3 带有顺序访问指针的B+Tree三、...原创 2019-05-09 12:16:06 · 343 阅读 · 0 评论 -
以MySQL为例,详解数据库索引原理(2)
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。一、二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大...转载 2019-05-10 12:01:43 · 132 阅读 · 0 评论 -
mysql之优化-大纲
前言:DBA的日常工作日常操作:监控状态,备份与恢复,高可用,数据迁移,集群搭建与扩容,高可用;体系结构:sql审计,存储引擎,sql优化,缓存/线程,建表与索引,锁与事务;进阶操作:源码定制,内核原理;首先,我们来看看DBA的具体工作,我觉得 DBA 真的很忙:备份和恢复、监控状态、集群搭建与扩容、数据迁移和高可用,这是我们 DBA 的功能。了解这些功能以后要对体系结构有更加深入的...原创 2019-05-13 01:28:46 · 275 阅读 · 0 评论 -
mysql之优化-测试工具
mysql调优文章目录mysql调优mysqlslap测试sysbench测试tpcc测试mysql_status观察列类型选择原则为什么要测试高性能不是指"绝对性能"强悍,而是指业务能发挥出硬件的最大水平.性能强的服务器并非"设计"而来,而是不断改进,提升短板.测试,就是量化找出短板的过程.只有会测试,能把数据量化,才能进一步改进优化.----想学抓药,先学号脉测试指标?1:...原创 2019-05-04 14:01:00 · 1912 阅读 · 1 评论 -
mysql之优化-存储引擎
一、MySQL的存储引擎1.1 引擎目前广泛使用的是MyISAM和InnoDB两种引擎:1.1.1 MyISAMMyISAM引擎是MySQL 5.1及之前版本的默认引擎,它的特点是:不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排它锁;不支持事务;不支持外键;不支持崩溃后的安全恢复;在表有读取查询的同时,支持往表中插入新纪录;支持BLOB和TEXT的前500个字符索...原创 2019-05-13 01:21:54 · 357 阅读 · 0 评论 -
mysql之优化-系统优化
一、内存1.1 要确保有足够的内存数据库能够高效的运行,最关建的因素需要内存足更大了,能缓存住数据,更新也可以在内存先完成。但不同的业务对内存需要强度不一样,一推荐内存要占到数据的15-25%的比例,特别的热的数据,内存基本要达到数据库的80%大小。拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。1.2 选择合适的内存分配算法默...原创 2019-05-13 01:19:16 · 643 阅读 · 0 评论 -
mysql之优化-字段类型
一、字段类型和编码1.1、mysql返回字符串长度:CHARACTER_LENGTH方法(CHAR_LENGTH一样的)返回的是字符数,LENGTH函数返回的是字节数,一个汉字三个字节1.2、索引长度:varvhar等字段建立索引长度计算语句:**select count(distinct left(test,5))/count(*) from table; 越趋近1越好1.3、字符集设...原创 2019-05-13 01:30:53 · 457 阅读 · 0 评论 -
mysql之优化-索引
文章目录一、mysql索引使用策略及优化1.1 联合索引及最左前缀原理1.1.1 联合索引(复合索引)1.1.2 最左前缀原理1.1.3 前缀索引1.2 索引优化策略一、mysql索引使用策略及优化MySQL的优化主要分为结构优化(Scheme optimization)和查询优化(Query optimization)。本章讨论的高性能索引策略主要属于结构优化范畴。本章的内容完全基于上文的理...原创 2019-05-10 11:58:06 · 413 阅读 · 0 评论 -
mysql之优化-配置
MySQL 配置文件优化1.当写入时,使用 innodb_flush_method=O_DIRECT 来避免双缓冲。2.避免使用 O_DIRECT 和 EXT3 文件系统 – 你将序列化所有要写入的。3.分配足够的 innodb_buffer_pool_size 来加载整个 InnoDB 文件到内存中– 少从磁盘中读取。4.不要将 innodb_log_file_size 参数设置太大,...原创 2019-05-13 01:18:03 · 184 阅读 · 0 评论 -
mysql之优化-分表
一、表的分割1.1 水平分割案例 大数据量的用户表三张表:qqlogin0,qqlogin1,qqlogin2将用户id%3,按结果放入不同的表当中create table qqlogin0( id int unsigned not null primary key,/* 这个id不能设置自增长 */ name varchar(32) not null default...原创 2019-05-13 01:29:43 · 193 阅读 · 0 评论 -
mysql之优化-SQL 语句执行慢分析
一、分类讨论一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。大多数情况是正常的,只是偶尔会出现很慢的情况。在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。针对这两种情况,我们来分析下可能是哪些原因导致的。二、针对偶尔很慢的情况一条 SQL 大多数情况正常,偶尔才能出现很慢的情况...转载 2019-05-10 10:53:56 · 838 阅读 · 0 评论 -
mysql之优化-总结
文章目录一、单表优化1.1 字段1.2 索引1.3 查询SQL1.4 引擎1.4.1 MyISAM1.4.2 InnoDB1.5 系统调优参数1.6 升级硬件二、读写分离三、缓存四、表分区4.1 分区的好处是:4.2 分区的限制和缺点:4.3 分区的类型:4.4 分区适合的场景有:五、垂直拆分5.1 垂直拆分的优点是:5.2 缺点是:六、水平拆分6.1 概述6.2 分片原则6.3 解决方案当My...转载 2019-05-10 15:30:21 · 314 阅读 · 0 评论