mysql高质量技术要点总结归纳分享

5 篇文章 0 订阅

---各种安装方式
通过yum源安装
通过二进制安装包安装
通过源码安装
---mysql的逻辑架构图
从上往下依次是 客户端  服务层  存储层  细分为:连接器 解析器 优化器和执行器
mysql逻辑存储结构 表空间  段  区 页 行
理解mysql既有逻辑存储空间又有物理存储空间,并且逻辑空间是有序的或者相邻的,但是物理空间并不一定相连
---mysql修改root密码
查找初始密码
设置初始密码 set password=password('新密码');
密码强度设置  len 长度
新增mysql用户 ,授权,访问表的权限
---各种sql语句的编写和含义以及使用案例
DCL 数据库控制语句
DML数据库操作语句
DDL数据库定义语句
---mysql字段的数据类型
int char  varchar  datetime  varchar(20)的含义
---mysql服务端和客户端的编码字符集
查看字符集
设置字符集
---表的设计方案
三大范式 反范式设计 字段冗余设计
为表建立主键 并且主键类型为bigint 自增张
尽量使用固定大小的数据类型
字段初始值不能为null
表的字段上限不要超过30个,索引不得超过10个。(索引越多,影响写的效率,因为mysql要维护表的b+tree结构)
表名和字段名需要取的有业务意义,不能拼音和一些无意义的东西比如 aa  cc  hao
设置表的存储引擎为innodb
---存储引擎 myisam innodb
5.6版本后默认存储引擎改成innodb
理解b+ tree 和b-tree 的区别
理解innodb对b+tree的实现
理解b+tree的存储结构以及查询方式包括 叶子节点 非叶子节点的区别
理解innodb的逻辑存储结构,理解页的作用和查看命令
innodb_page_size
理解innodb和mysiam的区别 重点在行锁和事务
---事务
a原子性 c一致性 i隔离性 d持久性
理解脏读 ,不可重复读,幻读
理解事务的隔离级别(读未提交[RU])(读已提交[RC]) (可重复读[RR])
知道mysql事务的默认隔离级别 select @@global.tx_isolation;
知道mysql默认的提交方式为自动提交  autocommit=1;
---索引
索引的创建语法 create index 索引名 on tablename
索引的作用
索引的分类 :聚集索引 非聚集索引 普通索引 辅助索引
聚集索引和非聚集索引的区别
复合索引的含义
复合索引的最左匹配原则
索引的创建原则 ,索引选取的标准尺度,什么样的列适合建立索引
索引失效情况,典型sql案例
理解隐式转换 如 where name=123 会造成mysql查询的时候放弃使用索引而走全表扫描
理解覆盖索引,extra=using index
索引下推是什么意思(实际用处不大,面试可能问到)
---sql查询的常识规范
尽量不要使用子查询,用连接查询替代子查询
select子句不要用* 查询
使用 union查询代替or查询
in和exists使用区别 in的情况下,in后面放大表,exists相反
join查询 永远记住小表驱动大表  
理解 left join  inner join  right join对查询结果集取值的操作
理解join查询的常用算法比如 NJL BNJL hashjoin
查询条件不要做隐式转换
--- sql调优
explian分析sql执行计划 重点关注 type key  extra rows的值
show profile
show processlist
sys视图查看数据库整体性能 包括(索引 IO 事件)
--- 锁
表锁 (共享锁  意向性  自增锁)行锁 (记录锁  间隙锁  临键锁)
理解间隙锁产生的场景
理解间隙锁的危害
理解死锁  锁等待  死锁出现场景  死锁问题排查(十分吃经验)
---行知识
理解MVCC机制  当前读和快照读
行格式 compact Dynamic Compressed
行格式的一般结构 变长字符列表 Null标志位 [row_id] col1 col2 tx_id  roll_point 删除标志位
理解行溢出的含义
---页的结构(先忽略,目前还没研究)
---各种log
binlog  redolog  undolog slowlog
binlog是server的日志 是一种逻辑日志
redolog是一种物理日志记录,写的时候先把数据写进redolog,在flush到磁盘,记录页的物理地址的改变 是对数据一致性的保证
undolog是记录数据在写之前的数据,保证的是数据的原子性。
理解redolog的crash-safe能力
理解redolog的两阶段提交的必要性
理解redolog页的checkpoint和write pos机制
理解慢查询的开启和查看方法,慢查询的统计情况(收集的是没使用索引或者查询时间超过设计的阈值的语句)
生产环境 开启慢查询的性能影响
---mysql系统变量和当前状态
show variables like '';
show status like
理解mysql的session和global设置的区别
mysql的配置文件在linux里面叫my.cnf
未理解的知识点总结
double write机制
mysql页和磁盘页的大小是否相同?
脏页刷新到磁盘,一次从页往磁盘写入多少大小  16k or 8k  还是可以自定义
当前页不足时,mysql底层向操作系统申请新页的时候,是申请一个页还是申请一个区
innodb_buffer_pool和join buffer是否共用一个内存?
innodb_buffer_pool淘汰机制LRU的方式
暂时想到这么多。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值