mysql-学习笔记(一)


MySql 的各个组件及组件之间的关系

1   管理工具组件,提供包括配置,集群,读写分离等工具
2   连接池组件,创建并缓存连接,组成连接池
3   SQL接口组件,结束DDL,DML,DQL语句及语法的支持
4   SQL parser sql解析组件,将我们通过连接传输过来的sql进行解析
5   SQL optimizer 组件,sql优化器,通过解析引擎把解析好的sql做进一步的优化
                可以把他放到缓存中,有一定的缓存策略及相关组件
6   缓存组件 如何根据当前查询创建对应的缓存,并设置过期时间,这都是为了提高mysql的性能的
7   插件式存储引擎,mysql的存储引擎是基于插件式的方式,类似于jdbc,你可以指定你当前数据库实例采用什么
    存储引擎,自己可以配置,也可以自己实现一个存储引擎并配置,目前我们用的最多的是innodb,myisam目前还不太熟悉
8   物理文件及文件系统

比如说我们想要发出这样一条sql并获取结果,应该经过的步骤有
  select username,password from user where id=1 ;
  a 首先最基本的数据库配置组件肯定要弄好了,装好数据库,并制定下配置
  b 我们需要获取到数据库实例的连接,就必须要跟数据连接池组件打交道
  c 获取到数据库连接了,那么我们就要发出对应的sql,sql语句要用到对应的sql接口
  d mysql接到sql请求了,首先对sql语句进行语法语义进行解析,如果有错直接给客户端报错.
    sql语句进行解析,包括软解析(绑定遍历),硬解析(非绑定变量)
  e 语法语义解析过后,就要根据当前语句和mysql内存中已经有的sql进行比对,进行sql的优化,比如是否能用到绑定变量
  f 查询语句解析完毕,对应的存储引擎就要去文件系统中找到对应位置的数据,并返回给客户端,同时这块也是有一个缓存机制,
    跟据我们查询的频率和数据做一定时间的缓存,以提高查询效率.
attention: 存储引擎是基于表的,而不是数据库,也就是说我们在新建表的时候需要指定下表的存储引擎.

mysql 常用操作
    show variables like 'socket';#查看当前的socket连接
    show engines \G ;#查看当前数据库支持的存储引擎.
     


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值