• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    新手入门Mysql--概念

    1. 是什么?

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

    1.1 RDBMS

    RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:

    1.数据以表格的形式出现

    2.每行为各种记录名称

    3.每列为记录名称所对应的数据域

    4.许多的行和列组成一张表单

    5.若干的表单组成database

    1.2 MySQL数据库

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    2. 工作机制

    2.1 整体架构图(C/S架构)

    提供连接MySQL服务器功能的常用工具集

    MySQL实例,真正提供数据存储和数据处理功能的MySQL服务器进程

    MySQL服务器守护程序,在后台运行。它管理着客户端请求。mysqld是一个多线程的进程,允许多个会话连接,端口监听连接,管理MySQL实例

    MySQL的要求的内存空间是动态的,比如 innodb_buffer_pool_size (from 5.7.5), key_buffer_size。每个会话都有独一无二的执行计划,我们只能共享同一会话域内的数据集。

    为每个客户端连接分配一个会话,动态分配和回收。用于查询处理,每个会话同时具备一个缓冲区。每个会话是作为一个线程执行的

    检测SQL语句语法,为每条SQL语句生成SQL_ID,用户认证也发生在这个阶段

    创造一个有效率的执行计划(根据具体的存储引擎)。它将会重写查询语句。比如:InnoDB有共享缓冲区,所以,优化器会首先从预先缓存的数据中提取。使用 table statistics optimizer将会为SQL查询生成一个执行计划。用户权限检查也发生在这个阶段。

    缓存对象元信息和统计信息

    共享在内存中的完全一样的查询语句。如果完全相同的查询在缓存命中,MySQL服务器会直接从缓存中去检索结果。缓存是会话间共享的,所以为一个客户生成的结果集也能为另一个客户所用。查询缓存基于SQL_ID。将SELECT语句写入视图就是查询缓存最好的例子。

    缓存表索引。MySQL keys是索引。如果索引数据量小,它将缓存索引结构和叶子节点(存储索引数据)。如果索引很大,它只会缓存索引结构,通常供MyISAM存储引擎使用

    2.2 网络协议

    2.2.1 通信协议

    到MySQL5.7为止,总共有五种,分别是TCP/IP,TLS/SSL,Unix Sockets,Shared Memory,Named pipes,下面我们就来看看这五种的区别:

    方式 默认开启 支持系统 只支持本机 如何开启 参数配置
    TCP/IP 所有系统 –skip-networking=yes/no –port–bind-address
    TLS/SSL 所有系统(基于TCP/IP)之上 –ssl=yes/no –ssl-* options
    Unix Sockets 类Unix系统 –socket= 来关闭 –socket=socket path
    Shared Memory Windows系统 –shared-memory=on/off. –shared-memory-base-name=
    Named pipes Windows系统 –enable-named-pipe=on/off –socket=

    2.2.2 报文格式

    协议头:

    每个协议头共4个字节

    - 包数据长度:

    前三个字节表示数据部分的长度(不包括协议头),三字节能表示的最大长度是16M-1(2^24 - 1),如果要发送的数据部分大于这个长度,要进行拆包,每16M-1个长度为一包。接收端在接受数据的时候,如果检测到包的长度是16M-1,说明后续还有数据部分,直到接收到16M-1长度的数据包结束。这意味着最后一包的数据长度可能为0.

    序号:

    1个字节,从0开始递增。当发送一个新的sql、数据库重连,该值清0(函数sql/Net_serv.cc : net_clear).

    数据类型:

    除了固定长度的整型或者字符串之外,还有其他几种类型的数据。(固定长度字段数据的存取:include/Mybyte_order.h : 存值 intstore 取值:intkorr 多字节的处理按照小端优先的方式)

         1. 可变长度的整数   
            对该类数据的存取在函数:sql-common/Pack.c: 存整数: net_store_length     读整数:net_field_length
            如果数值251,直接用一个字节存储这个值。
           如果251=数值2^16, 采用3个字节存储,第一个字节是252, 另外2个字节存储整数内容
           如果2^16=数值2^24,采用4字节存储,第一个字节是252,另外3个字节存储整数内容
           如果2^24=数值2^64,采用9字节存储,第一个字节255,另外8字节存储整数内容
           如果第一个字节为251,表示该整数字段为null
           如果第一个字节为255,表示该字节是ERR包的第一个字节
       2. 可编码长度的字符串
               字符串的长度采用可变长度的整数进行编码。
    

    2.3 SQL语法

    可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。 SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。

    查询和更新指令构成了 SQL 的 DML 部分:

    SELECT - 从数据库表中获取数据UPDATE - 更新数据库表中的数据DELETE - 从数据库表中删除数据INSERT INTO - 向数据库表中插入数据SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

    SQL 中最重要的 DDL 语句:

    CREATE DATABASE - 创建新数据库ALTER DATABASE - 修改数据库CREATE TABLE - 创建新表ALTER TABLE - 变更(改变)数据库表DROP TABLE - 删除表CREATE INDEX - 创建索引(搜索键)DROP INDEX - 删除索引

    3. 小结

    这篇文章从宏观和使用角度去了解Mysql是什么,后续深入。也请大家多多关注脚本之家的更多内容

    您可能感兴趣的文章:
    • MySql新手入门的基本操作汇总
    • MySQL新手入门指南--快速参考
    • 新手入门Mysql--sql执行过程
    上一篇:MySQL 外键约束和表关系相关总结
    下一篇:新手入门Mysql--sql执行过程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    新手入门Mysql--概念 新手入门,Mysql--,概念,新手入门,