分类目录归档: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

InnoDB 全文索引


在 5.6 版本后 InnoDB 引擎也支持了全文索引,并且在 5.7.6 版本后支持了中文索引。全 文索引只能在 CHAR、VARCHAR、TEXT 类型字段上使用,底层使用倒排索引实现。 要注意对于大数据量的表,生成全文索引会非常消耗时间也非常消耗磁盘空间。

Read more