Mysql进阶

本文深入探讨了MySQL的进阶主题,包括MySQL的架构,重点讲解了MyISAM和InnoDB引擎的特性。详细阐述了索引的优缺点、分类、数据结构,尤其是聚簇和非聚簇索引的概念。此外,还介绍了事务的ACID特性、隔离级别及其原理。最后,讨论了SQL优化,强调了EXPLAIN的使用来分析查询执行计划。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、Mysql进阶

视图,存储过程(难以调试,扩展,没有移植性),函数,触发
将一些处理的过程,都是保存在数据库中,然后调用,现在使用的项目使用较少。阿里禁止使用存储过程,存储过程难以调试和扩展,没有移植性。

二、Mysql架构

  • 连接层:处理客户端连接请求,对用户进行认证
  • 服务层:可以接收sql,调用存储过程,优化sql,缓存数据…
  • 引擎层:负责实际与文件层进行交互操作的,可以有不同的引擎选择。
  • 物理文件层:存储表数据 以及各种日志文件

a. MySql引擎

引擎指的是MySQL在数据操作时,所使用的技术(事物,索引,锁,外键…)
查看支持的引擎

SHOW ENGINES

查看表引擎

SHOW TABLE STATUS LIKE '表名'

修改引擎

方式 1:将 mysql.ini 中 default-storage-engine=InnoDB,重启服务. 
方式 2:建表时指定 CREATE TABLE 表名(...)ENGINE=MYISAM;
方式 3:建表后修改 ALTER TABLE 表名 ENGINE = INNODB;

mysql中提供了多种的引擎技术,不同的引特征不同:

  • InnoDB:MySQL默认的存储引擎,支持事物,行级锁(并发量大),外键约束,容量大,支持索引,支持缓存,支持主键自增,支持全文检索,不存储表的总行数,需要sql逐行统计。

  • MyISAM:不支持事务,不支持行锁,只有表锁,并发量小,不支持外键,支持全文检索,存储了表的总行数,统计速度快。

在不同的数据操作时,选择合适的引擎,提高效率

b. 索引

数据库中存储大量数据,如果需要查找其中的一行,需要从第一行逐行查询,效率很低。
可以在数据表中建立索引,索引是帮助MySQL高效获取数据的数据结构(例如二叉树),排好序的快速查找的数据结构。索引类似一个目录,通过目录可以快速定位到数据位置,拿到物理地址

①索引优缺点

优势:
提高查询效率,降低数据库IO次数,通过索引列进行条件查询,排序,分组,提高效率…
劣势:
索引也是需要占用空间的(比如:书的目录占用书的空间),对数据进行增,删,改时,索引树也需要更新,需要时间。
创建索引原则:
建议添加索引的情况:主键,外键,查询条件(where后面的列 如: 新闻标题)排序,分组使用的列
不建议添加索引的情况:表数据太少,增删改频率高的(更改数据需要更新索引树),不用做查询条件的,数据重复高的(例如:性别)

②索引分类

  • 主键索引:设定为主键后会自动添加主键索引
	//设定为主键
	ALTER TABLE 表名 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值