MySQL数据库的基础架构

前言

我思故我在

MySQL基础架构图

MySQL组成部分说明

①连接器

作用:负责和客户端建立连接,权限校验,管理和维护连接,连接完成处于空闲状态。

问题:如何查看空闲列表?

答案:通过show processlist查看,在Command字段,为Sleep为空闲状态。

引申:我们知道如果客户端长时间不相应,那么会断开连接,而这个时长由wait_timeout控制,默认时间8小时。

命令:SHOW GLOBAL VARIABLES LIKE ‘wait_timeout‘;

注意我们在这里得到的是28800秒,单位是秒。

命令:SET GLOBAL wait_timeout=28800;

这个命令是设置连接时间为28800秒,你也可以设置为其他时间。

问题:对于默认时长超过8个小时,就会连接中断,那我们有什么解决办法?

答案:我们可以使用长连接去解决这个问题,避免每次请求都创建连接的开销,节省了时间和IO消耗,但是会导致内存上升很快,这是因为MySQL的临时内存空间是由连接对象管理,只有断开连接才会释放内存,最后内存占用太大,会被系统杀掉,从而导致MySQL重启。

问题:如何解决长连接存在的问题?

答案:1,我们使用完长连接之后,在断开连接,下次使用的时候在重新连接。2,我们可以执行mysql_reset_connection函数来初始化连接,让连接回到最初的使用状态。

②缓存

作用:mysql也是有缓存的,一般用于select语句,里面的结构是key-value的形式,sql语句作为key,但不建议使用mysql当中的缓存,一旦数据库执行update,insert,delete时就要删除缓存,命中率太低,所以在mysql8.0的时候缓存就被删除了

问题:查询的时候用缓存什么操作,不用缓存又是什么操作?

答案:1,把query_cache_type设置成为DEMAND,这样SQL默认不适用缓存。2,SELECT SQL_NO_CACHE * FROM 表名,不使用缓存。3,SELECT SQL_CACHE * FROM 表名,使用缓存。

③分析器

作用:主要用于检查是否出现语法错误,如果有,就返回错误信息。

④优化器

作用:判断使用哪个索引更高效等。

⑤执行器

前提:mysql通过分析器知道了要做什么,通过优化器知道了怎么做。

作用:1,校验该用户是否有操作这张表的权限。2,执行优化设计结果,返回执行结果。

最后

如果大家不喜欢文字,可以保存一下我的流程图。

原文地址:https://www.cnblogs.com/phoniex22/p/12362609.html

时间: 2024-08-29 10:14:51

MySQL数据库的基础架构的相关文章

高性能可扩展MySQL数据库设计及架构优化 电商项目

第1章 数据库开发规范的制定    俗话说:"没有规矩不成方圆".这一章,我们就先来制定数据库开发的各种规范,包括:数据库命名规范.数据库基本设计规范.数据库索引设计规范.数据库字段设计规范.SQL开发规范以及数据库操作规范.通过这些规范的制定可以指导并规范我们后续的开发工作,为我们以后的工作提供一个良好的基础.... 第2章 电商实例数据库结构设计    数据库开发规范的基础之上,如何更好的利用规范设计出易于维护和伸缩性良好的数据库结构,是我们的学习目的.这一章我们根据常用电商项目需

[python] 专题九.Mysql数据库编程基础知识

在Python网络爬虫中,通常是通过TXT纯文本方式存储,其实也是可以存储在数据库中的:同时在WAMP(Windows.Apache.MySQL.PHP或Python)开发网站中,也可以通过Python构建网页的,所以这篇文章主要讲述Python调用MySQL数据库相关编程知识.从以下几个方面进行讲解: 1.配置MySLQ 2.SQL语句基础知识 3.Python操作MySQL基础知识 4.Python调用MySQL示例 一. 配置MySQL 首先下载mysql-5.0.96-winx64,安装

mysql数据库高可用架构-----MHA-0.56的详解

大家都知道,任何线上环境,都必须搭载高可用架构,是web的,也要是数据库的,严格来说更是整个架构的高可用. mysql作为时下比较热的数据库,高可用架构更加需求大.不过,以前老旧那一套已经不合时宜,现在用的比较多的就是MHA和PXC了. PXC的优势是做到同写同回滚,达到数据高度一致性,通过一些程序和代码来做第三方分发,可以做到一定程度的读写分离,是个相当不错的高可用解决方案,不过对网络要求比较高,配置也略复杂一些,最好是同一个机房里面做,不过这并不是本文重点,后面找时间再写相关的文章. 本文要

mysql数据库相关基础知识01

数据库的简介 1.什么是数据库:数据仓库.访问必须只能用SQL语句来访问.数据库也是一个文件的系统. 2.数据库的作用:存储数据的作用.开发任何的应用,都有数据库. 3.关系型的数据库:数据库中保存的都是实体与实体之间的关系. 4.常见的数据库 * Java开发,必用的两个数据库Oracle和MySQL * Oracle数据库(甲骨文) 大型的数据库,收费的. * MySQL数据库 小型的数据库,免费开源的.被Oracle收购了(在6.x版本下开始收费了) * SQLServer 微软的数据库

专题九.Mysql数据库编程基础知识

https://blog.csdn.net/Eastmount/article/details/52156383 这篇文章主要讲述Python调用MySQL数据库相关编程知识.从以下几个方面进行讲解: 1.配置MySLQ 2.SQL语句基础知识 3.Python操作MySQL基础知识 4.Python调用MySQL示例 一. 配置MySQL 原文地址:https://www.cnblogs.com/chenhuan123/p/12038446.html

性能08篇-MySQL数据库性能基础

创建数据库测试计划: 创建10个并发用户,每个用户发送两个SQL请求到数据库服务器,每个用户都会运行测试3遍.因此,总共发送的测试数目是(10并发用户)*(2请求)*(重复3遍)=60JDBC请求.要构建这一测试计划,测试人员需要使用到的测试元件包括:线程组(Thread Group).JDBC请求(JDBC Request).图形结果(Graph Results). ?  1.添加并发用户 首先要做的是添加线程组,并修改其默认配置. 2.添加JDBC请求 定义JDBC请求需要完成的操作.选中线

MySQL数据库的基础操作及理解

使用数据库的步骤: 链接MySQL服务器 选择数据库 对数据表进行增删改查 关闭数据库 退出 quit exit \q 常见操作 \c 取消未完成的操作. \g 代替结束符 数据库操作: show databases 查看数据库 注意:查看所有数据库,mysql数据库千万不要动. 创建数据库 create database 数据库名 注意:库名不要用中文,不要用数字开头. 注意: 1.每创建一个数据库,会在data目录下创建一个以数据库名称命名的文件夹. 2.数据库是唯一的. 删除数据库 dro

mysql数据库相关基础与数据库的相关操作

mysql是目前主流的数据库管理系统之一,目前还是免费的. 数据库的发展史,基本概念就不再赘述,总之数据库就是存储数据的仓库,而我们所见到的所有其实都可以归类成数据. 什么是sql? SQL:(Structured Query Language)是结构化查询语言缩写.是一门专门与数据库管理系统打交道的语言. SQL语言:是关系型数据库的标准语言, 其主要用于存取数据,查询数据,更新数据和管理数据库系统等操作. 具体可以把SQL分为4个部分: 数据控制语言 ( DCL): 主要用于控制用户的访问权

mysql数据库02 基础教程

查询数据 SELECT column_1, column_2, ... FROM table_1 [INNER | LEFT |RIGHT JOIN table_2 ON conditions] WHERE conditions GROUP BY column_1 HAVING group_conditions ORDER BY column_1 LIMIT offset, length; SELECT语句由以下列表中所述的几个子句组成: SELECT 之后是逗号分隔列或星号(*)的列表,表示要