• MySql----前言有点用----1


    MySQL

    服务器 && 客户端

    安装

    不会真有人不会安装吧???

    安装的时候会直接(客户端)和(服务器端)都安装了

    服务器端

    服务器端:一句话,就是打开服务;打开胸膛,你来存或者取;

    以我的小Mac为例子:在/usr/local/mysql/bin目录下,有如下的运行文件,其中我框起来的是可以启动Mysql服务器的命令

    window下:应该在安装目录下;

     

     还有一个启动方式:./mysql.server start

    mac上由于没有配置文件my.cnf,所以只能通过这个指令启动,哭咯;害,应该需要自己创建一个。

    客户端

    mysql -h localhost -u root -p密码

    客户端与服务器端的连接

    本质:两个线程之间的通信过程

    通信方式1--TCP/IP

    IP地址 + 端口号

    服务器启动的时候指定端口号:mysqld -P3307,默认是3306

    客户端启动:mysql -h 服务器IP -u root -P 端口号 -p密码

    通信方式2--命名管道

    启动服务器是:mysqld --enable-named-pipe

    启动客户端是:mysql ... --pipe或者--protocol=pipe

    通信方式3--共享内存

    要求服务器进程和客户端进程在同一台机器上

    启动服务器:mysqld --shared-memory

    启动客户端:mysql ... --protocol=memory

    通信方式4--Unix域套接字

    需要在同一台类Unix的机器上启动服务器和客户端

    在Unix机器上,假如客户端启动的时候连接的(-h localhost) 或者(--protocol=socket),则客户端和服务器端默认的通信是通过Unix套接字,并且套接字文件默认为 /tmp/mysql.sock

    启动服务器:mysqld --socket=/temp/a.txt      没有使用默认的套接字文件

    启动客户端:mysql ... --socket=/temp/a.txt

    通信过程

    客户端进程向服务器进程发送一段文本(MYSql语句),服务器进程处理后再向客户端发送一段文本

    连接管理

    每当一个客户端进程连接到服务器进程时,服务器进程都会创建一个线程来专门处理与这个客户端交互,采用的方式就是上面的4种。

    处理完,并不会销毁,留给下一个客户端,有点像线程池的感觉哈。

    解析和优化

    查询缓存

    说白了就是:将新来的mysql语句进行对比,假如这条语句跟前面的一条一摸一样,那么我们直接用缓存中的结果(也就是上一次查询的结果会被保存在缓存中)

    假如,两条语句有一毛钱的,比如空格不一样,那么就无法命中缓存了。

    同时,监控所有表,一旦一个表被insert、update...修改了,那么有关这个表的缓存全部失效

    Mysql8.0已经没有了缓存的概念

    语法分析

    就是将sql语句进行编译的过程

    查询优化

    你写的sql语句太垃圾,mysql说我帮你优化下呗

    存储引擎

    存储引擎 描述
    ARCHIVE 用于数据存档
    BLACKHOLE 丢弃写操作
    CSV 在存储数据时,以逗号分割各个数据项
    FEDERATED 用来访问远程表
    INNODB 具备外键支持功能的事务存储引擎
    MEMORY 置于内存的表
    MERGE 用来管理多个MyISAM表构成的表集合
    MYISAM 主要的非事务处理存储引擎
    NDB MySQL集群专用存储引擎

     

     

     

     

     

     

     

     

     

     

     

     

     用的最多的:INNODB、MYISAM、MEMORY;其中INNODB是默认的

    存储引擎负责:对表中的数据进行提取和写入工作,我们可以为不同的表设置不同的存储引擎,也就是说不同表可以有不同的物理存储结构,不同的提取和写入方式

    创建表是指定引擎 && 修改表引擎

     

     

  • 相关阅读:
    第一章:Android系统的编译和移植实例读书笔记
    第二章:Android系统与嵌入式开发读书笔记
    第三章:Android移植平台工具介绍读书笔记
    第十章 嵌入式Linux的调试技术
    第九章 硬件抽象层:HAL
    第八章 让开发板发出声音:蜂鸣器驱动
    第七章 LED将为我闪烁:控制发光二极管
    第六章 第一个Linux驱动程序:统计单词个数
    第五章 搭建S3C6410开发板的测试环境
    第四章 源代码的下载和编译
  • 原文地址:https://www.cnblogs.com/sicheng-li/p/13099967.html
Copyright © 2020-2023  润新知