1.mysql自带的客户端工具 mysql mysqladmin mysqldump 3.mysql是一个二进制程序,后台守护进程 单进程 多线程
1.TCP/IP连接 2.socket连接 #tcp/ip连接 mysql -uroot -p -h127.0.0.1 mysql -uroot -p -h127.0.0.1 -S /tmp/mysql.sock #socket连接 mysql -uroot -p -hlocalhost mysql -uroot -p #注意: 1)不一定-h就是TCP/IP连接,如果是localhosts就是socket连接 2)socket连接比TCP/IP连接快,TCP/IP连接需要经过三次握手,四次挥手,慢 3)socket连接只能本地连接,远程不能使用
1.MySQL的后台进程 + 线程 + 预分配的内存空间 2.MySQL在启动的过程中会启动后台守护进程,并生成工作线程,预分配内存结构供MySQL处理数据使用。
预分配内存,比如分配了8G给数据库,那么数据库启动的时候就占用8G的内存空间,但是超过了的占用内存的也不会被打开。
1.验证用户身份,判断用户名和密码 2.提供两种连接方式 - sockect 连接 - TCP/IP 连接 3.与SQL层建立交互的线程
1.接收连接层传过来的数据 2.判断sql语句的语法 3.判断SQL语句的语义 4.解析器:解析sql语句,生成执行计划 5.优化器:选出执行计划中最优的计划 6.执行器:解析sql语句,生成执行计划 6.1 与存储引擎层建立交互 6.2 将优化后要执行的SQL发给存储引擎层 7.记录缓存,如果前端有redis,将数据缓存至redis 8.记录日志
1.与sql层建立交互,接收SQL层传来的SQL语句 2.与磁盘进行交互,获取数据,将数据返回给sql层