1、为什么使用索引假如给数据使用 二叉树 这样的数据结构进行存储,如下图所示 2、索引及其优缺点 2.1、索引概述2.2、优点(1)类似大学图书馆建书目索引,提高数据检索的效率,降低 数据库的IO成本 ,这也是创建索引最主 要的原因。 (2)通过创建唯一索引,可以保证数据库表中每一行 数据的唯一性 。 (3)在实现数据的 参考完整性方面,可以 加速表和表之间的连接 。换句话说,对于有依赖关系的子表
1、查看存储引擎为了方便管理,人们把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为MySQL Server的功能,把真实存取数据的功能划分为存储引擎的功能,所以在MySQL Server完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的API,获取到数据后返回给客户端就好了 MySQL中提到了存储引擎的概念,简而言之,存储引擎就是指表的类型,其实存储引擎以前
1、逻辑架构剖析 1.1、服务器处理客户端请求首先MySQL是典型的C/S架构,即Client/Server 架构‘ , 服务器端程序使用的mysqld。不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(SQL语句) ,服务器进程处理后再向客户端进程发送一段文本(处理结果)那服务器进程对客户端进程发送的请求做了什么处理,才能产生最后的处理结果
1、用户管理 1.1、密码过期策略在MySQL中,数据库管理员可以 手动设置 账号密码过期,也可以建立一个 自动 密码过期策略。 过期策略可以是 全局的,也可以为每个账号设置单独的过期策略。 ALTER USER user PASSWORD EXPIRE; 练习: ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE; 方式①:使用SQL语句更改
1、数据库和文件系统1.1、查看默认数据库SHOW DATABASES;可以看到有4个数据库是属于MySQL自带的系统数据库。mysqlMySQL 系统自带的核心数据库,它存储了MySQL的用户账户和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等。information_schemaMySQL 系统自带的数据库,这个数据库保存着MySQL服务器维护
3、新特性2:公用表表达式公用表表达式(或通用表表达式)简称为CTE(Common Table Expressions)。CTE是一个命名的临时结果集,作用范围是当前语句。CTE可以理解成一个可以复用的子查询,当然跟子查询还是有点区别的,CTE可以引用其他CTE,但子查询不能引用其他子查询。所以,可以考虑代替子查询。依据语法结构和执行方式的不同,公用表表达式分为普通公用表表达式和递归公用表表达式
2、新特性1:窗口函数 2.1、使用窗口函数前后对比假设我现在有这样一个数据表,它显示了某购物网站在每个城市每个区的销售额: CREATE TABLE sales( id INT PRIMARY KEY AUTO_INCREMENT, city VARCHAR(15), county VARCHAR(15), sales_value DECIMAL ); INSERT INTO sales(ci
1、mysql8.0新特性概述MySQL从5.7版本直接跳跃发布了8.0版本 ,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上 做了显著的改进与增强,开发者对MySQL的源代码进行了重构,突出的一点是多MySQL Optimizer优化 器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更棒的体验。 1.1、mysql8.0新增特性1. 更简便的NoSQL支持 NoSQ
1、触发器概述MySQL从 5.0.2 版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一 段程序。 触发器是由事件来触发 某个操作,这些事件包括INSERT、UPDATE、DELETE事件。所谓事件就是指 用户的动作或者触发某项行为。 如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。 当对数据表中的数据执行插入
在MySQL数据库中,全局变量可以通过SETGLOBAL语句来设置。 例如,设置服务器语句超时的限制,可以通过设置系统变量max_execution_time来实现: SET GLOBAL MAX_EXECUTION_TIME=2000; 使用SETGLOBAL语句设置的变量值只会临时生效,数据库重启后,服务器又会从MySQL配置文件中读取变量的默认值。 MySQL8.0版本新增了SET PER
4、游标 4.1、什么是游标虽然我们也可以通过筛选条件WHERE和HAVING,或者是限定返回记录的关键字LIMIT返回一条记录, 但是,却无法在结果集中像指针一样,向前定位一条记录、向后定位一条记录,或者是随意定位到某一条记录并对记录的数据进行处理。 这个时候,就可以用到游标。游标,提供了一种灵活的操作方式,让我们能够对结果集中的每一条记录进行定位,并对指向的记录中的数据进行操作的数据结构。 游
3、流程控制解决复杂问题不可能通过一个SQL语句完成,我们需要执行多个SQL操作。流程控制语句的作用就是控制存储过程中SQL语句的执行顺序,是我们完成复杂操作必不可少的一部分。 只要是执行的程序,流程就分为三大类: 顺序结构:程序从上往下依次执行 分支结构:程序按条件进行选择执行,从两条或多条路径中选择一条执行 循环结构:程序满足一定条件下,重复执行一组语句 针对于MyS
1、变量在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。 在MySQL数据库中,变量分为系统变量以及用户自定义变量1.1、系统变量 1.1.1、系统变量分类变量由系统定义,不是用户定义,属于服务器层面,启动MySQL服务,生成MySQL服务实例期间 MySQL将为MySQL服务器内存中的系统变量赋值,这些系统变量定义了当前MySQL服务实例
5、存储过程和存储函数的查看、修改、删除 5.1、查看创建完之后,怎么知道我们创建的存储过程、存储函数是否成功了呢? MySQL存储了存储过程和函数的状态信息,用户可以使用SHOW STATUS语句或SHOW CREATE语句来查看,也可直接从系统的information_schema数据库中查询。 这里介绍3种方法。 1. 使用SHOW CREATE语句查看存储过程和函数的创建信息 基本语法结
4、存储函数的使用 4.1、语法分析学过的函数:LENGTH、SUBSTR、CONCAT等 语法格式 CREATE FUNCTION 函数名(参数名 参数类型,...) RETURNS 返回值类型 [characteristics ...] BEGIN 函数体 #函数体中肯定有 RETURN 语句 END 说明: 1、参数列表:指定参数为IN、OUT或INOUT只对PROCEDURE是
1、存储过程概述 1.1、理解含义: 存储过程的英文是 Stored Procedure 。它的思想很简单,就是一组经过 预先编译 的 SQL 语句的封装。 执行过程:存储过程预先存储在 MySQL 服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列SQL语句全部执行 好处: 1、简化操作,提高了sql语句的重用性,减少了开发程序员的压力
1、多路复用要解决的问题并发多客户端连接,在多路复用之前最简单和典型的方案:同步阻塞网络IO模型 这种模式的特点就是用一个进程来处理一个网络连接(一个用户请求),比如一段典型的示例代码如下。 直接调用 recv 函数从一个 socket 上读取数据。 int main() { ... recv(sock, ...) //从用户角度来看非常简单,一个recv一用,要接收的数据就到我们手里了。 }
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号