问题整理----数据库

1.设计及模块划分

  1. 存储(文件系统)
  2. 程序实例(对文件系统的管理)
  • 存储管理(一次加载多个页)
  • 缓存机制(LRU)
  • SQL解析
  • 日志管理(binlog)
  • 权限划分
  • 容灾机制
  • 索引管理
  • 锁管理

2.索引模块

(1)为什么使用索引

不使用索引采用的全文检索,当数据小的时候是很快的,但是数据很大的时候就会很慢,因此采用索引,提高查询速度

(2)索引数据结构

  • B-Tree

n阶树,每个根节点至少要有两个孩子,每个非根节点至少要有ceil(m/2)最多m个节点,关键字个数是孩子节点个数-1

  • B+Tree

关键字个数是孩子节点个数

优点:

查询稳定

磁盘I/O减少

支持范围统计

  • hash索引

查询很快,但是不支持范围查询,和排序操作,不能用部分索引查询,不能避免表的扫描,hash值相同的就变成了线性搜索。不稳定。

3.索引和非聚簇索引

聚簇索引:主键,第一个唯一非空索引,默认创建一个

为什么要一定有一个聚簇索引呢?非聚簇索引是需要回表查询的

4.如何定义慢查询和优化

  • 根据日志定位慢查询sql(慢日志记录查询比较慢的sql记录)

show variables like '%quer%';
show status like '%show_querues%'//慢sql条数

  • 使用explain工具分析

type:找到数据行的类型:index 和all是要进行优化的

extra:using filesort 和using temporary 是需要优化的

  • 修改sql,尽量使用索引

5.MyISAM和INNODB

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值