mysql必知必会的第一步是会用,基本语句会写,那对于我们想要更进一步成为架构师,参与设计表的工作,远远不够。 怎么用好是我们第二阶段需要考虑的问题,那当然这对于Mysql知识的要求也更进一步,我们要从Mysql的设计上了解为什么这么设计,有什么好处,我们能用它那些好处!!!
开篇从全局介绍下Mysql,然后几个概念心里有数,这一篇就是介绍几个原子性的概念
mysql安装----windows包下载
1. 什么是QPS 和 TPS?
qps指的是一秒内查询的个数 计算公式 :query / uptime = qps tps 指一秒钟内提交的事务个数 (commit + rollback)/uptime
2.我们一般做压力测试可以怎么选择?
可以使用mysql官方提供的一些工具,mysqlslap.exe , 具体的命令百度,我很弱
3.脑子里有没有对mysql的使用有那么一张布局图? 还没有
4.对于一条语句的一个执行顺序有没有一个基本的认识? 也没有
先是连接层--> 处理层 -(sql缓存)-> 解析 ...
5.什么时候会调用sql缓存 ?
当 mysql开启了 cache ,并且给缓存空间设值 , 一个sql第二次进入会使用到缓存。 这里不同的存储引擎会有区别: myisam 只会存储语句,不会缓存数据 ,而innodb 会缓存语句和数据
mysql中的存储引擎有哪些? innoDB /myisam /memory /cvs / Ferderated
6.设置存储引擎为myisam 的表 在mysql中的表结构,索引和数据是存在哪儿的呢?
在mysql指定存储data的位置会有三个文件: .frm .myi . myd -----第一个存表结构信息 , 第二个存储索引信息 ,第三个存储详细数据
7.设置存储引擎为innoDB 的表 在mysql中的表结构,索引和数据是存在哪儿的呢?
会有2种情况 innodb 有 系统表存储 / 独立表存储 (如何设置-百度)
系统表的结构:.frm 、索引和data存放到总的那张表 独立表:.frm .idb 第一个存储表结构 第二个存储索引和数据data
8. myisam 与 innodb的比较
属性 | myisam | innodb |
事务 | 不支持 | 支持 |
针对的目的 | 性能 | 并发 |
外主键 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
缓存内容 | 只会缓存查询语句 | 缓存语句和数据 |
表内存压缩 | 会将索引表和数据表压缩,同时会有一个old表生成,该表可删除,但会有表数据无法插入\修改的问题 | / |
碎片整理 | 支持碎片整理 | 对于innoDB的 独立表空间 /系统表空间 有不一样的情况 独立表空间支持碎片整理 ,系统表存储在mysql系统data文件种不支持碎片整理 |
行表锁 | 表级锁 | 行级锁 |
适用场景 | 做只读表 做日志系统,报表,订单 对空间的计算设计支持好,可做GIS | 适合并发场景,行级锁保证高并发 事务 ACID ,保证写操作的完整性 适用大多数OLTP场景 |
9 OLTP是什么意思?
online transcation processing 联机事务处理 具体可以参考文章OLTP/OLAP