mysql总结

一、文件结构

1、配置文件

  /etc/my.cnf

2、数据文件位置

  /var/lib/mysql

3、日志文件

1)通用日志文件,默认关闭,查看show global variables like 'general_log';

2)二进制文件,默认关闭,开启log-bin=mysql-bin

3)慢查询日志文件,默认关闭

#开启慢查询日志 slow_query_log=ON

#慢查询的阈值 long_query_time=10

#日志记录文件如果没有给出file_name值, 默认为主机名,后缀为-slow.log。如果给出了文件名, 但不是绝对路径名,文件则写入数据目录。 slow_query_log_file= file_name。

查询多少SQL超过了慢查询时间的阈值: SHOW GLOBAL STATUS LIKE '%Slow_queries%';

4)错误日志文件,默认开启,而且从5.5.7以后无法关闭错误日志

4、数据文件

1)InnoDB引擎

.frm,表结构定义

.idb文件,表索引和详细数据信息

2)ibdata1,系统表空间文件

3)ib_logfile0、ib_logfile1,重做日志文件

二、事务

1、四大特性

原子性、一致性、隔离性、持久性

2、隔离级别

RU(读未提交),脏读

RC(读已提交),不可重复读

RR(可重复读),幻读,mysql默认隔离级别,用间隙锁解决幻读

SERILIZABLE(串行化)

3、并发控制

LBCC(基于锁的并发控制,写写)

MVCC(基于版本的并发控制,读写),使用readview控制读操作

当前读(加锁)、快照读

三、索引

1、数据结构

hash表、二叉树、平衡二叉树

B树,非叶子节点和叶子节点都会存储数据。

B+树,只有叶子节点才会存储数据,非叶子节点至存储键值。叶子节点之间使用双向指针连接,最底层 的叶子节点形成了一个双向有序链表。相比于B树优势,层级低、范围查询快。

2、MyIsam引擎

主键索引和辅助索引存储结构一样,索引的叶子节点保存的是数据行对应的地址信息。

3、InnoDB引擎

主键索引,主键索引的叶子节点会存储数据行,辅助索引只会存储主键值。

辅助索引,除主键索引之外的所有索引都称为辅助索引。使用辅助索引需要检索两遍索引,首先检索辅助索引获得主键,然后使用主键到主索引中检索获得记录。

is null可以使用索引

四、锁

1、功能分类,共享锁(读锁S锁)、排他锁(写锁X锁)

2、类型分类,记录锁、间隙锁、临键锁(记录锁+间隙锁)

3、根据辅助索引更新,在辅助索引上加间隙锁,对应的主键索引上加记录锁

4、查看状态,show status like 'innodb_row_lock%';

Innodb_row_lock_time_avg(等待平均时长)

Innodb_row_lock_waits(等待总次数)

Innodb_row_lock_time(等待总时长)

select * from information_schema.innodb_locks;

select * from information_schema.innodb_lock_waits;

select * from information_schema.innodb_trx;

五、性能优化

1、分析慢查询日志的工具mysqldumpslow

2、查看执行计划重要参数

1)select_type,simple、primary、union、subquery

2)type,const主键或唯一索引、eq_ref主键或唯一索引等值关联、ref非唯一索引、range范围索引、index覆盖索引、all全表扫描

3)extra,using index覆盖索引,using where过滤条件无索引

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值