MySql基础知识总结
2016-09-20 22:28
477 查看
一、SQL语句的分类
DDL(数据定义语言):用来定义数据库对象:比如库、表、列、触发器、视图、函数、存储过程等
DML(数据操纵语言):用来操作数据库记录(数据)
DCL(数据控制语言):用来定义访问权限和安全级别
DQL(数据查询语言):用来查询数据记录
二、存储引擎
MySQL数据库存储引擎总结:点击这里
存储引擎:与其他数据库软件不同,MySql数据库软件提供了一个名为存储引擎的概念。存储引擎是MySQL数据库管理系统的一个重要特征,在具体开发时,为了提高MySQL数据库管理系统的使用效率和灵活性,可以根据实际需要来选择存储引擎。
几种常用的数据库引擎:MyISAM 、InnoDB、MEMORY
更多详细查看《深入浅出:MySQL数据库开发、优化与管理维护》
存储引擎和数据类型,前者决定了数
4000
据库对象表的类型,后者决定了数据库对象表中存储数据类型
三、索引
理解索引前先百度搜索“键与索引的区别”,这里推荐一篇点击这里
全文索引:主要关联在数据类型为CHAR、VARCHAR和TEXT的字段上、以便能够更加
快速地查询数据量较大的字符串类型的字段。(全文索引只能在MyISAM上创建)
多列索引:是指在创建索引时,所关联的字段不是一个字段,而是多个字段,虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用(只有被使用的时,查询的速度才会加快)
索引的优缺点:
优点:
(1)大大加快数据的检索速度;
(2)创建唯一性索引,保证数据库表中每一行数据的唯一性;
(3)加速表和表之间的连接;
(如果是在:存在依赖关系的子表和父表之间的联合查询,即主键或外键处;(可以是主键索引,或者是唯一索引))
(4)在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
(如果是在:在分组的字段,即在GROUP BY子句中出现的字段;(组别,很显然不能是唯一索引,也不能是主键索引,所以只能是普通索引))
缺点:
(1)索引需要占用物理空间。
(2)当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。
( 查询时速度增加,但在数据增加、删除和修改的时候速度降低)
关于BTREE索引和HASH索引:
HASH索引:
(1)HASH索引查找数据基本上能一次定位数据,所以用于使用=或<=>操作符号的等式比较
(2)HASH索引对ORDER
BY有加速作用
(3)只能用整个关键字搜索一行, 而不能用前缀(因为HASH索引需要准确的定位)
BTREE索引(btree索引就得在节点上挨着查找了,很明显在数据精确查找方面hash索引的效率是要高于btree的):
(1)适用于>、<、>=、<=、BETWEEN AND、!=或者<>、LIKE(适用于范围)
四、视图
五、触发器
DDL(数据定义语言):用来定义数据库对象:比如库、表、列、触发器、视图、函数、存储过程等
(可以理解为创建语言) 数据库级别: 创建数据库:Create database if not exists db_name; 删除数据库:Drop database if exist db_name; 表级别 创建表:Create Table stu( sid int primary key, sname varchar(25)); 删除表:Drop Table 此外:还有对数据库和表级别上的修改
DML(数据操纵语言):用来操作数据库记录(数据)
操作的是记录级别的 DML是对表的记录进行操作,包括插入操作、删除操作、修改操作
DCL(数据控制语言):用来定义访问权限和安全级别
DCL这是对数据库用户、权限级别的操作
DQL(数据查询语言):用来查询数据记录
DQL是对表的记录进行查询,以select开头的SQL语句
二、存储引擎
MySQL数据库存储引擎总结:点击这里
存储引擎:与其他数据库软件不同,MySql数据库软件提供了一个名为存储引擎的概念。存储引擎是MySQL数据库管理系统的一个重要特征,在具体开发时,为了提高MySQL数据库管理系统的使用效率和灵活性,可以根据实际需要来选择存储引擎。
SHOW ENGINES 查看当前数据库所支持的引擎 SHOW VARIABLES LIKE 'have%'; 查看当前数据库所支持的引擎 SHOW VARIABLES LIKE 'storage_engine%'; 查看当前数据库默认搜索引擎
几种常用的数据库引擎:MyISAM 、InnoDB、MEMORY
更多详细查看《深入浅出:MySQL数据库开发、优化与管理维护》
存储引擎和数据类型,前者决定了数
4000
据库对象表的类型,后者决定了数据库对象表中存储数据类型
三、索引
理解索引前先百度搜索“键与索引的区别”,这里推荐一篇点击这里
索引(数据库提高性能最常用的工具)主要是为了提高从表中检索数据的速度。由于数据存储在数据库表中,所以索引是创建数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储在数据结构(B树哈希表)中。索引分为B型树索引和哈希索引。 InnoDB和MyISAM存储引擎支持B树索引,不支持哈希索引;MEMORY存储引擎支持哈希索引,也支持B树索引 索引分为普通索引(INDEX),唯一索引(UNIQUE INDEX)(主键一定是唯一索引,唯一索引不一定是主键)、主键索引、全文索引(FULLTEXT INDEX)、多列索引。在以下情况创建索引: (1)经常被查询的字段,即在WHERE子句中出现的字段;(如果不是唯一,也不是主键,可以创建普通索引) (2)在分组的字段,即在GROUP BY子句中出现的字段;(组别,很显然不能是唯一索引,也不能是主键索引,所以只能是普通索引) (3)存在依赖关系的子表和父表之间的联合查询,即主键或外键处;(可以是主键索引,或者是唯一索引) (4)唯一约束的字段(唯一索引)
全文索引:主要关联在数据类型为CHAR、VARCHAR和TEXT的字段上、以便能够更加
快速地查询数据量较大的字符串类型的字段。(全文索引只能在MyISAM上创建)
(MyISAM的特点是:不支持事务,不支持外键,访问速度快(对事务完整性或者以select、Insert为主的应用基本都可以使用这个引擎)。
联想: InnoDB的特点是:在事务上具有优势,也支持具有提交、回滚、奔溃回复能力的事务安装,比MyISAM存储引擎占用更多的磁盘空间。 MEMORY的特点是:使用内存来存储数据,访问速度是比MyISAM和InnoDB还要快的,但是安全上没有保障,即服务器断点关机后,数据清零。 如果数据小并且能承受丢失的风险,可以使用这种引擎(用于那些内容变化不频繁的代码表,或者作为统计操作的中间结果表))
多列索引:是指在创建索引时,所关联的字段不是一个字段,而是多个字段,虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用(只有被使用的时,查询的速度才会加快)
索引的优缺点:
优点:
(1)大大加快数据的检索速度;
(2)创建唯一性索引,保证数据库表中每一行数据的唯一性;
(3)加速表和表之间的连接;
(如果是在:存在依赖关系的子表和父表之间的联合查询,即主键或外键处;(可以是主键索引,或者是唯一索引))
(4)在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
(如果是在:在分组的字段,即在GROUP BY子句中出现的字段;(组别,很显然不能是唯一索引,也不能是主键索引,所以只能是普通索引))
缺点:
(1)索引需要占用物理空间。
(2)当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。
( 查询时速度增加,但在数据增加、删除和修改的时候速度降低)
关于BTREE索引和HASH索引:
HASH索引:
(1)HASH索引查找数据基本上能一次定位数据,所以用于使用=或<=>操作符号的等式比较
(2)HASH索引对ORDER
BY有加速作用
(3)只能用整个关键字搜索一行, 而不能用前缀(因为HASH索引需要准确的定位)
BTREE索引(btree索引就得在节点上挨着查找了,很明显在数据精确查找方面hash索引的效率是要高于btree的):
(1)适用于>、<、>=、<=、BETWEEN AND、!=或者<>、LIKE(适用于范围)
四、视图
五、触发器
相关文章推荐
- Windows10系统下,彻底删除卸载MySQL
- 高性能mysql读书笔记
- 解析数据存储MySQL
- MYSQL 分组取前N条数据
- mysql
- mysql主从复制
- The MySQL 8.0.0 Milestone Release is available
- 【存储过程】MySQL存储过程记录
- mysql中alter和update
- mysql聚合函数
- Mysql关联查询优化器理解
- LNMP下使用命令行导出导入MySQL数据库的方法
- MySQL的外键是什么和它的作用
- mysql导入导出数据相关
- mysql怎么进行索引优化
- Mysql区分大小写问题
- MySQL常用的数据类型及函数_20160920
- 如何在一台windows主机上搭建mysql主从配置
- mysql ab 压力测试的解读(转)
- mysql查询优化需要注意的20点