适合学生做的微商代理,南昌网站排名优化费用,通信工程企业网站建设,电子商务简介初识 MySQL 1.服务器处理客户端请求2.常用存储引擎3.关于存储引擎的一些操作3.1 查看当前服务器程序支持的存储引擎3.2 设置表的存储引擎3.2.1 创建表时指定存储引擎3.2.2 修改表的存储引擎 4.总结 MySQL 默认采用 TCP/IP 的方式来处理客户端与服务器连接过程。 1.服务器处理客… 初识 MySQL 1.服务器处理客户端请求2.常用存储引擎3.关于存储引擎的一些操作3.1 查看当前服务器程序支持的存储引擎3.2 设置表的存储引擎3.2.1 创建表时指定存储引擎3.2.2 修改表的存储引擎 4.总结 MySQL 默认采用 TCP/IP 的方式来处理客户端与服务器连接过程。 1.服务器处理客户端请求 连接管理使用连接池的思想客户端往服务器发送请求服务器接收到的请求只是一个文本消息解析优化 查询缓存语法解析从文本中解析出要查询的表、各种查询条件放到 MySQL 服务器内部使用的一些数据结构上查询优化生成查询计划可以通过EXPLAIN 语句可以查看某个语句的执行计划 存储引擎 MySQL 服务器把数据的存储和提取操作都封装到了一个名为存储引擎的模块中。表是由一行一行的记录组成的但这只是一个逻辑上的概念。在物理上如何表示记录怎么从表中读取数据以及怎么把数据写入具体的物理存储器上都是存储引擎负责的事情。为了实现不同的功能MySQL提供了各式各样的存储引擎不同存储引擎管理的表可能有不同的存储结构采用的存取算法也可能不同。存储引擎的功能就是接收上层传下来的指令然后对表中的数据进行读取或写入操作。
为了方便管理人们把MySQL服务器处理请求的过程简单地划分为 server 层和存储引擎层。
连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存取的功能划分为 server 层的功能。存取真实数据的功能划分为存储引擎层的功能。各种不同的存储引擎为server 层提供统一的调用接口其中包含了几十个不同用途的底层函数比如“读取索引第一条记录”“读取索引下一条记录”“插入记录”等。
所以在 server 层完成了查询优化后只需按照生成的执行计划调用底层存储引擎提供的接口获取到数据后返回给客户端就好了。
不过需要注意的一点是server 层和存储引擎层交互时一般是以记录为单位的。
以SELECT 语句为例server 层根据执行计划先向存储引擎层取一条记录然后判断是否符合 WHERE 条件如果符合就发送给客户端否则跳过该记录然后继续向存储引擎索要下一条记录依此类推。 注 server 层在判断某条记录符合要求之后其实是先将其发送到一个缓冲区待到该缓冲区满了才向客户端发送真正的记录。该缓冲区大小由系统变量 net_buffer_length 控制。 2.常用存储引擎
MySQL 支持多种存储引擎。 我们最常用的就是 InnoDB 和 MyISAM偶尔还会提一下 MEMORY。其中 InnoDB 是 MySQL 默认的存储引擎。
存储引擎对某些功能的支持情况如下 InnoDB 从 MySQL 5.5.5 版本开始作为 MySQL 的默认存储引擎之前版本的默认存储引擎是 MyISAM。 3.关于存储引擎的一些操作
3.1 查看当前服务器程序支持的存储引擎
SHOW ENGINES; Support 列表示该存储引擎是否可用DEFAULT 值代表当前服务器程序的默认存储引擎Comment 列是对存储引擎的一个描述Transactions 列代表该存储引擎是否支持事务处理XA 列表示该存储引擎是否支持分布式事务Savepoints 列代表该存储引擎是否支持事务的部分回滚
3.2 设置表的存储引擎
存储引擎是负责对表中数据进行读取和写入工作的我们可以为不同的表设置不同的存储引擎。也就是说不同的表可以有不同的物理存储结构、不同的读取和写入方式。
3.2.1 创建表时指定存储引擎
如果创建表时没有指定表的存储引擎就会使用默认的 InnoDB。
显示地指定表的存储引擎
CREATE TABLE 表名 (建表语句;
) ENGINE 存储引擎名称;eg:
mysql CREATE TABLE engine_demo_table (- i int- ) ENGINE MyISAM;
Query OK, 0 rows affected (0.02 sec)3.2.2 修改表的存储引擎
ALTER TABLE 表名 ENGINE 存储引擎名称;eg:
mysql ALTER TABLE engine_demo_table ENGINE InnoDB;
mysql SHOW CREATE TABLE engine_demo_table\G
************************* 1.row *************************Table: engine_demo_table
Create Table: CREATE TABLE engine_demo_table (i int(11) DEFAULT NULL
) ENGINEInnoDB DEFAULT CHARSETutf8
1 row in set (0.01 sec)4.总结
MySQL 采用客户端/服务端架构用户通过客户端程序发送增删改查请求服务器程序收到请求后处理并且把处理结果返回给客户端。
MySQL 安装目录的 bin 目录下存放了需多可执行文件其中有一些是服务端程序有一些时客户端程序。
类 UNIX 系统上启动服务器程序的方式
mysqldmysqld_safemysqld.servermysqld_multi
在 Windows 系统上启动服务器程序的方式
mysqld将 muyqld 注册为 Windows 服务 net start mysqldnet stop mysqld
启动客户端程序常用语法
mysql -h 主机名 -u 用户名 -p密码
客户端进程和服务器进程通信方式
TCP/IP命名管道或共享内存UNIX 域套接字
以查询请求为例服务器程序在处理客户端发送过来的请求时大致分为以下几个部分。
连接管理主要负责连接的建立与信息的认证解析与优化主要进行查询缓存、语法解析、查询优化存储引擎主要负责读取和写入底层表中的数据
MySQL 支持的存储引擎有好多种它们的功能各有侧重我们常用的就是 InnoDB 和 MyISAM其中 InnoDB 是服务器程序的默认存储引擎。
存储引擎常用用法 查看当前服务器程序支持的存储引擎 SHOW ENGINE; 创建表时指定表的存储引擎 CREATE TABLE 表名 (建表语句
) EGINE存储引擎名称;修改表的存储引擎 ALTER TABLE 表名 ENGINE存储引擎名称;