从根上理解mysql 笔记

服务器是直接和数据进行交互的,客户端知识发送增删改查请求,而服务器响应这些请求

在bin目录下启动mysqld这个可执行文件:

       若配置环境变量:  mysqld

(一)、启动mysql的服务端和客户端

服务端

UNIX:

1. mysqld

2.mysqld_safe    间接调用mysqld,而且启动另外监控进程,当服务器挂掉时,帮助重启,并可以产生错误日志

3.mysql.server start/stop    调用mysqld_safe

Windows:

1. mysqld

2. 首先将mysql注册为服务  :  "mysql路径\bin\mysqld"  --install

之后就可以用 net  start/stop  MySQL

客户端

mysql -h主机名 -u用户名 -p密码

服务器处理客户端请求过程

连接管理:  判断身份

查询缓存:  在缓存中查看是否已查询过,如果有则返回,没有在往后执行

语法解析:  判断语法是否有错误

查询优化:  比如外连接转化成内连接,表示式简化

存储引擎: MySQL把数据存储和查询操作封装到一个模块里(接收上层传下来的指令,然后对表中的数据进行提取或写入操作)

存储引擎简介

常见的存储引擎:  Innodb,Mysiam,Memory

常见操作

1. 查看当前服务器支持的存储引擎

SHOW ENGINES;

2. 设置表的存储引擎

CREATE TABLE table_name(
        建表语句;

) ENGINE = 存储引擎名称

3. 修改表的存储引擎

ALTER TABLE 表名 ENGINE = 存储引擎名称;

4. 查看表结构:

show create table 表名;

面试中经常问存储引擎的区别。。。。。。。注意记忆

Mysql启动选项和系统变量

服务器允许连入的客户端为151,表的默认存储引擎式InnoDB

以下都是在开启服务端时在命令行中添加

1. 禁止客户端使用TCP/IP网络进行连接

mysqld --skip-networking

2. 改变表的默认存储引擎

mysqld  --default-storage-engine=MyISAM

3. 帮助选项

mysql --help

mysqld_safe --help

mysqld --verbose --help

选项
长形式短形式含义
--host-h主机名
--user-u用户名
--password-p密码
--port-P端口号
--version-V版本

不过常用的设置配置文件的信息,具体的自己百度

4. 系统变量

        mysql服务器程序运行时有很多影响到程序行为的变量,叫做mysql的系统变量

  • 查看系统变量
    • show  variables [like 配置的模式]
      • show  varibales like 'default_storage_engine'
      • show variables like 'max_connections'
      • show variables like 'deault%'
  • 设置启动选项
    • mysqld --default-storge-engine=MyISAM --max-connections=10
    • 配置文件中设置   my.ini

5. 变量作用域

        全局变量   GLOBAL  影响服务器的整体操作

        会话变量   SESSION(LOCAL)  影响某个客户端连接操作

在服务器启动的时候,会设置变量作用域为GLOBAL,当有客户端进行连接的时候,将变量设置为会话变量,其值为GLOBAL变量值

在服务器运行期间,在客户端进行改变系统变量的值

set [GLOBAL|SESSION]  系统变量名 = 值;

或者

set  [@@(GLOBAL|SESSION).]var_name = xxx;

注意:

a)、如果在设置系统变量的语句中省略了作用范围,默认的作用范围是SESSION

b)、show variables 语句查看的是session的作用范围的系统变量

        不过也可以自己设置

         show  [GLOBAL|SESSION] variables [like 匹配模式]

6、 状态变量

状态变量是用来显示服务器程序运行状况的,所以值只能由服务器来进行设置

作用范围:   GLOBAL,SESSION    ,默认是SESSION

查看:   show [SESSION|GLOBAL] STATUS LIKE  'XXX';

(二)、字符集相关

  字符集比较规则: 同一种字符集可以有多种比较规则

1、 MySQL中的字符集

utf8mb3:    只使用1-3个字节表示字符

utf8mb4:    使用1-4个字节表示字符

utf8是utfmb3的别名,如果要存储一些表情,使用utf8mb4

2、字符集的查看

show (CHARACTER SET|CHARSET) [LIKE 匹配的模式]

字符集
字符集名称MaxLen
ascii1
latin11
gb23122
gbk2
utf83
utf8mb44

3、比较规则

show  collation  [like  匹配模式];

4、字符集和比较规则的应用

1)、各级别的字符集和比较规则

服务器级别

 

数据库级别

 

表级别

 

列级别

 

2)客户端和服务端通信中的字符集

客户端于服务端交互的是字符串,其中有字符集转换的概念

 

  为了防止混淆,设置成一致的就好了:    set names 字符集名

如果是windows系统,应该设置成gbk

(三)、存储引擎———InnoDB

        1、真实数据在不同存储引擎中存放的格式一般是不同的

        2、Memory这个存储引擎数据不放在数据库中,等服务器关闭数据就消失了

        3、InnoDB当处理插入或修改请求时,将数据划分为若干页,以页为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为16KB

(1)、InnoDB行格式

1) 行格式类型: Compact,Redundant,Dynamic,Compressed

2)  创建或修改表中的行格式

        create table 表明  (列的信息) ROW_FORMAT=行格式名称

        alter   table 表明  ROW_FORMAT=行格式名称

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值