Mysql之基础知识

1.  Mysql的基础架构图

    

    1.  企业管理服务和工具

        备份还原,复制,集群工具等

    2.  连接池

        负责监听对客户端向Mysql Server端的各种请求,建立连接,权限校验,维持和管理连接,通信方式是半双工模式,数据可以双向传输,但不能同时传输

    3.  SQL接口

        负责接收用户 SQL 命令,如 DML,DDL 和存储过程等,并将命令发送到其他部分,并接收其他部分返回的结果数据,将结果数据返回给客户端。

    4.  解析器

        负责将接收到的 SQL 命令解析和验证。

        解析器主要功能:

          1.  将SQL语句分解成数据结构,并将这个结构传递到后续步骤。通俗:将我们写的 SQL 语句分解成 MySQL 认识的语法往下传递。

          2.  如果在分解过程中出现错误,说明这个sql有语句错误。

    5.  查询优化器

        负责 SQL 语句在查询之前对查询进行优化,这个过程会使用 optimizer trace 优化查询 SQL,然后计算各种可以使用的索引和全表扫描的查询成本相比较,选择最优的查询方式。

    6.  可插拔存储引擎

        存储引擎就是如何管理操作数据(存储数据、更新数据、查询数据等)的一种方法

    7.  文件系统

        文件系统主要是将数据库的数据存储在操作系统的文件系统之上,并完成与存储引擎的交互。例如数据库文件,表文件和各种日志文件(bin log、redo log、undo log等)。

2.  查询语句执行过程

    

3.  Mysql的版本选择

    Mysql社区版

    Mysql标准版

    Mysql企业版

    Mysql集群版

4.  Mysql存储引擎

    1.  查看引擎

        1.  查看系统支持的引擎类型

            show engines \G;

        2.  查看数据库所有表的引擎

            show table status from 库名;

        3.  查看某个表的引擎

            show table status like '表名';

            show create table 表名;

    2.  InnoDB引擎

        Mysql5.5以后的版本,InnoDB是Mysql的默认引擎。

        特点如下:

          1.  支持行级锁

          2.  支持外键

          3.  支持事务

          4.  灾难恢复性好

          5.  支持热备份

          6.  能缓冲索引也能缓冲数据

    3.  MyISAM引擎

        MyISAM是Mysql5.0/5.1的默认引擎       

        特点如下:

          1.  支持全文索引

          2.  灾难恢复性差

          3.  不支持事务

          4.  只支持表锁

          5.  只缓存索引,数据的缓存利用操作系统缓冲区来实现的

    4.  MEMORY引擎

5.  Mysql结构化查询语言

    DQL  数据查询语言  主要是select

    DDL  数据定义语言  主要是create drop

    DML  数据操作语言  主要是insert delete update

    TPL  事物处理语言  主要是BEGIN TRAN COMMIT ROLLBACK

    DCL  数据控制语言  主要是GRANT REVOKE

    CCL  指针控制语言  DECLARE FETCH

6.  SQL基础

    1.  变量

        1.  用户变量

            一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。

            用户变量的形式为@var_name

            设置用户变量的语法:  set @var_name=expr[,@var_name=expr]    

            例子:  set @t1=0,@t2=1,@t3=2;

                或者  set @MYname=(select name from table_name);  

        2.  系统变量

            1.  全局变量

                通过修改配置文件或者在命令行中对指定的选项进行修改。

                修改语法:  set global var_name=value;  set @@global.var_name=value;

                全局变量影响更改后连接的客户端的对应会话变量,而不会影响目前已经连接的客户端的会话变量。        

            2.  会话变量

                客户端通过set session var_name=value;更改  或者  set @@session.var_name=value;

                会话变量只会对当前客户端有效

                如果设置变量时不指定global,session,默认使用session。

                select @@var_name,mysql会返回session值,如果session不存在,返回global。

                show variables,如果不指定global session,返回session值。

    2.  Mysql注释

        1.  使用#字符

        2.  使用--双破折号,后面跟个空格

        3.  /*到*/可以注释多行内容

    3.  数据类型

        参考文档:https://www.cnblogs.com/yangjianbo/articles/8541818.html

    4.  函数

        参考文档:https://www.cnblogs.com/yangjianbo/articles/15714021.html

    5.  操作符及优先级

        参考文档:https://www.cnblogs.com/yangjianbo/articles/8541818.html              

              

            

                    

posted @ 2023-07-05 17:51  奋斗史  阅读(8)  评论(0)    收藏  举报