Mysql进阶知识

这篇博客详细介绍了MySQL的进阶知识,包括索引的优势、劣势、分类和创建策略,分析了索引对查询优化的影响。接着讨论了MySQL的锁机制,包括读锁、写锁、表锁和行锁,以及锁的使用场景。此外,还阐述了数据库连接池的工作原理和主要参数。最后,文章强调了数据库规范与优化的重要性,涵盖数据库命名、数据结构设计、索引设计和SQL开发规范等方面。
摘要由CSDN通过智能技术生成

Mysql进阶知识

仅个人笔记

一、索引

索引是帮助MYSQL高效获取数据的数据结构–>排好序的快速查找数据结构

我们平时所说的索引,没有特别指明,都是指B树(多路搜索树,不一定是二叉)
结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引,除了B+树这种类型的索引外,还有哈希索引等。

优势:

  1. 类似大学图书馆书目索引,提高数据检索效率,降低数据库的io成本。
  2. 通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。

劣势:

  1. 实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用空间的。
  2. 虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERTE,UPDATE,和DELETE。因为更新表时,MYSQL不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。(维护B+树索引结构)
  3. 索引只是提高效率的一个因素,如果你的MYSQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。

索引分类

索引类型 区别
单值索引 即一个索引只包含单个列,一个表可以有多个单列索引
唯一索引 索引列的值必须唯一,但允许有空值
复合索引 即一个索引包含多个列

基本语法

创建:

CREATE [UNIQUE] INDEX indexName ON myTable(clumn name(length));

使用ALTER命令创建:

  1. 添加主键(意味着索引值必须唯一,且不能为NULL)
ALTER TABLE mytable ADD PRIMARY KEY(column_list)
  1. 创建唯一索引(索引值唯一,可以为NULL,为NULL可重复出现)
 ALTER TABLE mytable ADD UNIQUE index_name (column_list
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值