MySQL
MySQL 0 参考资料 黑马程序员 MySQL数据库入门到精通 图解MySQL介绍 MySQL | CS-Notes 面试笔记 MySQL面试题 MySQL常见面试题总结 SQL语句 通用语法 分号结尾,可多行书写 不区分大小写 注释采用–、#、/**/ 分类 DDL(Data Defination Language): 数据定义语言,用来定义数据库对象(数据库,表,字段)。 DML(Data Manipulation Language): 数据操作语言,用来对数据库表中数据进行增删改 DQL(Data Query Language): 数据查询语言,用来查询数据库中表的记录。 DCL(Data Control Language): 数据控制语言,用来创建数据库用户、控制数据库访问权限。 1 存储引擎 1.1 MySQL体系结构 连接层:负责连接处理、授权认证,以及相关的安全服务。 服务层:提供SQL借口,完成缓存查询,SQL的分析和优化,部分内置函数的执行,跨存储引擎功能的实现(过程、函数等)。 引擎层:负责数据的存储和提取,服务层通过API和存储引擎通话,不同存储引擎有不同功能。 存储层:将数据存储在文件系统上,完成于存储引擎的交互。 1.2 存储引擎特点 InnoDB:支持事务、支持行级锁、支持外键。 MyISAM:不支持事务,支持表级锁,访问速度快。 Memory:数据存放在内存,访问速度快,支持Hash索引。 2 索引 索引是帮助MySql高效获取数据的数据结构。 2.1 索引结构 索引是在存储引擎层实现的,不同存储引擎有不同的结构 索引结构 描述 B+Tree索引 大部分存储引擎都支持 Hash索引 底层使用Hash表实现,针对精确匹配有效,不支持范围查询 R-Tree索引(空间索引) MyISAM引擎拥有的特殊索引,用于地理空间数据类型 Full-Text索引 倒排索引,类似于Lucene、ES InnoDB和MyISAM都支持B+Tree索引和全文索引。 ...