Mysql高级

索引

对与大量的数据,我们需要快速查询出来。 就需要为了提高mysql查询效率的一种数据结构。

2. 索引的优点和缺点:

优点: 查询效率快。 缺点: 索引本身也是一个表页需要占用空间。不
适合更新操作。

3. 索引的数据结构: b+tree和hash表。

4. b+tree的特点:

根节点的最大值是B+tree的最大值。
中间节点不存在卫星数据。可以存储更多的元素。使得b+tree更矮
胖。减少了io的次数
所有卫星数据都存放在叶子节点,查询稳定性高。
叶子节点用链表连接 便于范围查询。

5. 聚焦索引和非聚焦索引。

1.聚焦索引: 所有的叶子节点存放的是卫星数据。
非聚焦索引: 所有的叶子节点存放的是卫星数据的指针。

6. 索引的分类:

单值索引
唯一索引
复合索引

7. 最左前缀法则

在建立索引时,尽量将经常需要查询的字段放在第一个。

mysql中的存储存储引擎的种类以及区别

(1)可查看mysql中目前拥有的存储引擎。

show engines

(2) 我们使用常见的引擎; InnoDB和MyISAM.
(3)我们的存储引擎作用在表上。而不是作用在数据库上。

innodb: 支持事务和外键以及存储的方式有两个文件。
myisam: 不支持事务和外键,存储方式是有三个文件。

sql优化的步骤

(1) 定位到查询慢的sql.有两种方式。

-- 1. 开启慢查询日志。设置一个超时的阈值,当执行的sql超过这个阈值
后,则会记录到日志中。可以使用tail命令查看日志文件中指定的后n行数
据。
放在mysql的配置文件 my.cnf [linux] my.ini[window]
# 该参数用来控制慢查询日志是否开启, 可取值: 1 和 0 , 1 代表开
启, 0 代表关闭
slow_query_log=1
# 该参数用来指定慢查询日志的文件名
slow_query_log_file=slow_query.log
# 该选项用来配置查询的时间限制, 超过这个时间将认为值慢查询, 将
需要进行日志记录, 默认10s
long_query_time=1
2. show processlist: 实时监控。

 分析sql的执行计划。

explain sql语句。  explain(解释)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值