Mysql实战45讲学习详情
大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 select * from T where ID=10;这条查询语句的执行过程:外部层: 用户与server层交互的媒介 一.客户端【用于连接数据库,输入命令/语句】 界面化连接数据库 输入 select * from T where ID=10;server层: ...
2024-01-10Mysql进阶
一、约束目的:使得数据更准确,更完整。约束的分类:键约束主键约束唯一键约束外键约束非空约束默认值约束自增约束检查约束(mysql暂时没有支持)二、主键约束(一)概述关键字 :primary key特点:增加主键约束的列(字段)的值必须是非空 + 唯一的,一个表只有一个主键约束作...
2024-01-10Mysql锁总结
数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来 实现这些访问规则的重要数据结构根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类全局锁全局锁就是对整个数据库实例加锁。MySQL ...
2024-01-10MySQL45讲2
前面我们了解了SQL查询语句是如何执行的,一条SQL查询语句的过程需要经过连接器、分析器、优化器、执行器等功能模块,最终到达存储引擎。在MySQL中,可以恢复到半个月内的任何一个时间点,这时基于日志系统来实现的。更新语句的流程在这个例子中,假设创建了表T。create table T(ID int primary key, c ...
2024-01-10Mysql中的范式
目录范式定义第一范式第二范式第三范式反范式范式定义范式:Normal Format,是一种离散数学中的知识,是为了解决数据的存储与优化的问题:保存数据的存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,终极目标是为了减少数据的冗余。范式背景:1、是为了解决数据冗余2、...
2024-01-10Mysql主从部署
Mysql主从部署基于Mysql 5.7.26-1一、 安装Mysql 离线部署推荐使用 "RPM Bundle" https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar 在线安装可使用yum源 https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 在线安装 rpm -ivh https://dev.mys...
2024-01-10MySQL45讲之幻读flowers
本文介绍什么是幻读,幻读存在的问题和解决方式,以及间隙锁带来的困扰。 前言本文介绍什么是幻读,幻读存在的问题和解决方式,以及间隙锁带来的困扰。什么是幻读什么是幻读,有两个条件:必须是“当前读”情况下才可能发生,“...
2024-01-10Mysql基础(一)
准备工作1.开启服务器··windows系统: 方法1.搜索服务,找到mysql并开启. 方法2.如果安装的是5.7版本,cmd中输入:net start MySQL57··Mac系统: 系统偏好设置开启mysql,然后命令行运行以下代码出现base字样即可:source .bash_profile2.连接服务器: mysql -uroot -p密码3.修改登录密码:set password for roo...
2024-01-10MySQL45讲之前缀索引flowers
本文介绍字符串的前缀索引优缺点,以及字符串区分度不高情况下,可以考虑如何建立索引。 前言本文介绍字符串的前缀索引优缺点,以及字符串区分度不高情况下,可以考虑如何建立索引。前缀索引对于像SELECT * FROM t WHERE email = "xxxx@163.com"...
2024-01-10MySQL45讲之更新缓存flowers
本文介绍MySQL的更新缓存Change Buffer,以及唯一索引和普通索引如何选择。 前言本文介绍MySQL的更新缓存Change Buffer,以及唯一索引和普通索引如何选择。唯一索引和普通索引的选择查询过程唯一索引下,查询索引树,找到第一条匹配的行就返回...
2024-01-10Mysql真的有缺点吗?
MySQL真的有确定吗?回答是肯定的,下面是Mysql的几个缺点:1. 如果使用大量存储过程,那么使用这些存储过程的每个连接的内存使用量将会大大增加。 此外,如果在存储过程中过度使用大量逻辑操作,则CPU使用率也会增加;2.存储过程的构造使得开发具有复杂业务逻辑的存储过程变得更加困难;3.mysql...
2024-01-10MySQL45讲之保证高可用flowers
本文主要介绍 MySQL 主备延迟,延迟产生的原因和主备切换策略。 前言本文主要介绍 MySQL 主备延迟,延迟产生的原因和主备切换策略。主备延迟主备同步过程中时间点主要有三个:主库A执行完成一个事务,写入binlog,我们把这个时刻记为T1;...
2024-01-10MySQL45讲之表空间回收flowers
本文介绍为什么删除了一部分表数据后,表文件大小不变,以及有哪些表空间回收的方式。 前言本文介绍为什么删除了一部分表数据后,表文件大小不变,以及有哪些表空间回收的方式。为什么删除表数据后,表文件大小不变MySQL 采用的是标...
2024-01-10MySQL实战45讲之基础篇flowers
本文主要记录学习MySQL实战45讲之基础篇过程中一些新的收获,以及总结主要内容。其中包括SQL如何运行、日志系统、事务隔离、索引和锁等。 前言本文主要记录学习MySQL实战45讲之基础篇过程中一些新的收获,以及总结主要内容。其中包括SQL如...
2024-01-10MySQL45讲之用户关注案例flowers
本文介绍 MySQL45 讲中提到的一个用户关注的案例,并记录下可行的处理方案。 前言本文介绍 MySQL45 讲中提到的一个用户关注的案例,并记录下可行的处理方案。业务背景业务上有这样的需求,A、B两个用户,如果互相关注,则成为好友。存在...
2024-01-10MySQL45讲之IO性能提升flowers
本文介绍 MySQL 的 binlog 和 redo log 写入机制和刷盘策略,以及如何提升 MySQL 的 IO 性能。 前言本文介绍 MySQL 的 binlog 和 redo log 写入机制和刷盘策略,以及如何提升 MySQL 的 IO 性能。binlog 的写入机制binlog 的写入流程是:先将日志写入到 binlog cache...
2024-01-10MySQL45讲之优化器选错索引flowers
本文简要介绍优化器选择索引的依据有哪些,有什么办法人为引导优化器选择更优的执行方案。 前言本文简要介绍优化器选择索引的依据有哪些,有什么办法人为引导优化器选择更优的执行方案。为什么会出现选错索引可能是统计索引基数信...
2024-01-10MySQL45讲之查询慢或者阻塞flowers
本文介绍锁表和执行慢的例子,以及发生锁表时的排查方法。 前言本文介绍锁表和执行慢的例子,以及发生锁表时的排查方法。锁表1. 等MDL锁比如像 select * from t where id=1; 长时间不返回,可能是因为等 MDL 锁而阻塞。排查方法:使用 show proces...
2024-01-10MySql条件排序
我有这张桌子(简体):创建表`my_table`( `id` INT NOT NULL AUTO_INCREMENT, `item_name` VARCHAR(45)NULL, `price` DECIMAL(10,0)NULL, 主键(`id`))我需要从表中选择所有项目,并按以下方式排序:1.价格> 0.00首先的项目,按价格ASC排序2.价格= 0.00最后的项目,按ID排序我尝试了这个: 选择 * 来自my...
2024-01-10MySql常见约束
含义:一种限制,用于限制表中的数据,为了保证表中数据的准确性和可靠性。分类:六大约束 1.NOT NULL :非空,用于保证该字段的值不能为空。例如学生表的学生姓名及学号等等。 2.DEFAULT:默认值,用于保证该字段有默认值。例如学生表的学生性别 3.PRIMARY KEY:主键,用于保证该字段...
2024-01-10Mysql 1864 主从错误解决方法
从字面意思看了一下是因为slave_pending_jobs_size_max默认值为16777216(16MB),但是slave接收到的slave_pending_jobs_size_max为17085453(17M);解决方案从库执行如下SQLmysql>stop slave;mysql>set global slave_pending_jobs_size_max=20000000;mysql> start slave;#在多线程复制时,在队列中Pending的事件所占用的最大内存,默认为16M,如...
2024-01-10MySQL45讲之备库并行复制策略flowers
本文主要介绍 MySQL 备库的并行复制策略。 前言本文主要介绍 MySQL 备库的并行复制策略。为什么备库需要并行复制如果主库有大量更新操作,因为主库可以并发写入,而备库只能单线程执行的话,那么备库的同步延迟会不断累加,即备库越来...
2024-01-10MySQL45讲之随机查询和临时表flowers
本文介绍 MySQL 随机查询的工作流程、优化随机查询的方式、和临时表。 前言本文介绍 MySQL 随机查询的工作流程、优化随机查询的方式、和临时表。工作流程根据下表结构建立 words 表,并通过过程插入 10000 条模拟数据。CREATE TABLE `words` ( `id`...
2024-01-1004、MySql表的操纵(上)
表是数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录。对表的操纵有创建表、查看表、修改表、删除表、向表中插入数据、修改表中的数据1、创建表 CREATE TABLE table_name (column_name column_type 约束条件)[存储引擎 字符集]; 或者:CREATE TABLE IF NOT EXISTS table_name (column_name co...
2024-01-10Mysql 5.7.14 使用常见问题汇总(推荐)
常见问题汇总:一. 当我们用navicate premiun 连接远程数据库时,若出现如下问题:笔者结合自己的实践,总结有如下原因:1.远程数据库服务没有打开连接端口2.本机IP地址没有得到授权3.本地网络故障笔者的情况属于第二种情况,当更换IP访问时,就可以连接成功。以上所述是小编给大家介绍...
2024-01-10