分类标签归档:MySQL

MySQL 基础概念


SQL 全称

Structured Query Language

SQL标准

SQL有两个主要的标准,分别是SQL92和SQL99。92和99代表了标准提出的时间,SQL92就是92年提出的标准规范。当然除了SQL92和SQL99以外,还存在 SQL-86SQL-89SQL:2003SQL:2008SQL:2011SQL:2016 等其他的标准。

SQL标准 特点
SQL92 形式简单, SQL语句较长,可读性差
SQL99 语法复杂,可读性强

SQL 语句规范

在SQL中,关键字和函数名是不用区分字母大小写的。比如 MySQL 在 Linux 的环境下,数

Read more

SQL 执行流程


SQL 执行流程

Oracle 执行流程

语法检查:检查SQL拼写是否正确,如果不正确,Oracle会报语法错误。
语义检查:检查SQL中的访问对象是否存在。比如我们在写SELECT语句的时候,列名写错了,系统就会提示错误。语法检查和语义检查的作用是保证SQL语句没有错误。
权限检查:看用户是否具备访问该数据的权限。
共享池检查:共享池(Shared Pool)是一块内存池,最主要的作用是缓存SQL语句和该语句的执行计划。Oracle通过检查共享池是否存在SQL语句的执行计划,来判断进行软解析,还是硬解析。那软解析和硬解析又该怎么理解呢?
在共享池中,Oracle首先对SQL语句进行Hash

Read more

关于sql语句连表查询的一个问题


问题链接

https://segmentfault.com/q/1010000019472412

MySQL 前缀索引大小限制

是否支持前缀索引以及前缀索引长度大小,依赖于数据表使用的存储引擎。
对于INNODB存储引擎而言,默认前缀长度最大能支持767字节;而在开启innodb_large_prefix属性值的情况下,最大能支持3072字节。
对于MyISAM存储引擎而言,前缀长度限制为1000字节。
对于NDB存储引擎而言,并不支持前缀索引。

SELECT
    post.id,
    post.title,
    post.content,
    GROUP_CONCAT( NA

Read more

MySQL 实战45讲 笔记


架构示意图

server 层

  • 连接器

    • 管理连接,权限验证
    • 一个用户成功建立连接后,即使你用管理员账号对这个用户的权限进行了修改,也不会影响已经存在连接的权限,修改完成后,只有再新建连接才会使用新的连接权限。
    • 空闲连接(show processlist; 显示为 Sleep ) 默认 8 小时断开(参数 wait_timeout 控制)
    • set GLOBAL interactive_timeout=10000; show GLOBAL VARIABLES like '%timeout%';
    • Mysql 在执行过程中,临时使用的内存是管理在连接对象里面的。这些资源会在连接断开的时候才释放。

Read more

MySQL 基础知识


MySQL 基础概念
SQL 执行流程
MySQL DDL
MySQL SELECT 查询
MySQL COUNT
MySQL 存储过程
MySQL 事务
MySQL 游标
MySQL 锁
MySQL 子查询
MySQL 连接
MySQL 视图
MySQL 索引
MySQL 索引结构
MySQL 范式
MySQL 函数
SQLAlalchemy
MySQL 调优语句
kaggle titanic 数据分析
InnoDB 内部结构
SQL 注入

推荐书籍:

《MySQL从入门到精通》

关系型数据库模型介绍的论文

《Towards a Logical Reconstruction of Relat

Read more

MySQL 面试题


面试官:SQL语言按照功能如何划分?

DDL(Data Definition Language) 数据定义语言,用来定义数据库对象,包括数据库、数据表和列。通过使用DDL,创建,删除和修改数据库和表结构。 DML(Data Manipulation Language) 数据操作语言,用来操作和数据库相关的记录,如增加、删除、修改记录 DCL(Data Control Language) 数据控制语言,用来定义访问权限和安全级别 DQL(Data Query Language) 数据查询语言

面试官:什么是ER图?

ER图(Entity Relationship Diagram)就是实体-关系图

Read more