MySql高级

MySql高级

MySql基础

数据库的概述:是一个数据管理系统

存储:按照特定的规则存储

管理:sql增删改查操作

数据库的类型:

​ 关系型数据库

​ 非关系型数据库

数据库的环境搭建:

​ 安装服务器端(sqlyog)

​ 可视化客户端工具

sql:

​ DDL:创建数据表结构

​ DML:对数据的增,删,改

​ DQL:对数据的查询(查询结果的处理:排序,多表关联,条件查询,模糊查询,数量限制,分组,函数)

MySql高级

MySql引擎

引擎就是数据库在处理数据时的机制

不同的引擎执行策略/机制不同

不同的需求选用不同的引擎,达到最优选择

查询mysql支持的引擎 Show Engines;

修改引擎

​ 方式1:将mysql.ini中default-storage-engine=InnoDB,重启服务.

​ 方式2:(建表时修改) Create table 表名(…)Engine = MYSIAM;

​ 方式3:(建表后修改) Alter table 表名 Engine = INNODB;

InnoDB

​ InnoDB是一个事务型的存储引擎,有行级锁和外键约束

​ 特点:处理大容量数据库系统,支持事务,并发大,支持外键约束,主键自增(以前版本不支持全文检索)

​ 适用场景:需要数据库事务时,经常更新的表,处理多重并发的更新请求,只有他支持外键;支持自增列属性auto_increment。

MyISAM

当Insert(插入)或Update(修改)数据时,即写操作需要锁定整个表,效率会低一些。查询快

​ 特点:不支持事务,不支持外键,不支持行级锁

​ 适用场景:读操作远远大于写操作且不需要数据库事务的支持

​ 查询快

索引

方便数据的查询类似于书中的目录

​ 创建索引的目的是为了优化数据库的查询速度。其中,用户创建的索引指向数据库中具体数据所在位置。当用户通过索引查询数据库中的数据时,不需要遍历所有数据库中的所有数据。这样,大幅度提高了查询效率。

​ 索引类似于书的目录,在一本书前面加上目录,查找内容时不必逐页翻阅就能够快速地找到所需的内容。借助索引,执行查询时不必扫描整个表就能够快速地找到所需要的数据。

优点: 方便查询,降低了IO成本

缺点: 索引也需要占用磁盘空间,同时会降低表的更新速度,修改,删除,新增时需要对索引进行维护(例:删除某条 数据时,索引也要做出改变)

索引分类:

主键索引:设定为主键后数据库会自动建立索引

​ Alter table 表名 add Primary Key 表名(列名);

​ 删除主键索引:

​ Alter table 表名 drop Primary Key;

单值索引:即一个索引只包含单个列,一个表可以有多个单列索引,

​ 创建单值索引:

​ Create Index 索引名 on 表名(列名);

​ 删除索引:

​ Drop index 索引名;

唯一索引:索引列的值必须是唯一,允许为null

​ 创建单值索引:

​ Create Unique index 索引名 on 表名(列名);

​ 删除索引:

​ Drop index 索引名;

复合索引:一个索引包含多个列 ,在数据库操作期间,复合索引比单值索引所需要的开销更小(对于相同的多个列建索引),当表的行数远大于索引列的数目时可以使用复合索引

​ 创建符合索引:

​ Create index 索引名 on 表名(列1,列2,……);

查看表的索引 Show index from 表名;

索引创建原则:

适合创建索引的情况:

  1. 主键
  2. 外键
  3. 频繁作为查询条件的字段(where后的语句)
  4. 排序字段

不适合创建索引的情况:

  1. 表记录太少(例:年级表)
  2. 经常增删改的表
  3. 不做为查询条件的(where条件用不到的)
  4. 重复数据非常多的(例:性别)

索引数据结构:

索引数据结构:B+Tree

B+树:一个结点可以存储多个数据,非叶子结点只存储索引,不存数据

​ 所有数据都在叶子结点存储,而且数据与数据之间有连接(像链表一样)

​ 叶子结点之间有连续性,适合范围查询( id>15)

​ 树的高度固定,查询快

在这里插入图片描述

不用哈希结构:虽然快,但是散列的不连续,条件范围查询不适应(例:id>10)

拿主键索引举例:如果使用树,红黑树(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值