mysql架构组成

  1. 配置文件
    • window中:my.ini文件
    • linux中: /etc/my.cnf
  2. 物理文件组成
    • 日记文件-->日记文件的选项配置文件(my.ini/my.cnf)mysql

      • 错误日记linux

        log-error<br> 记录的主要是较为严重的警告和错误消息,每次启动和关闭的详细信息等,默认关闭的。sql

      • 二进制日记数据库

        log-bin<br> 很是重要,未来作master/slave机制,slave要和master同步是来读取master的binlog来完成同步的。<br> 有些错误操做也须要经过binlog来恢复的。<br> 默认是关闭的,实际应用中应该开启。缓存

      • 更新日记服务器

        目前版本已经不支持架构

      • 查询日记并发

        log<br> 记录全部的查询,开启以后对mysql性能影响比较大,通常是不开启的。高并发

      • 慢查询日记工具

        log-slow-queries<br>

    • 数据文件

      • .frm文件
      • .myd文件
      • .myi文件
      • .idb文件
  3. 系统架构
    • 服务器管理中的模块
      • SQL Interface SQL接口
      • Parse 解析器
    • Optimizer 优化器模块
      • 对于mysql而言任何查询语句都须要通过这个优化器模块来解析查询语句,并获得最优的执行计划(优化器模块以为最优的),而后就会按这个计划执行查询
      • Cache 缓存
      • 存储引擎
        • MyISAM 存储引擎
          • 安装mysqlserver就已经安装上
          • 建立表的指定便可
          • 不支持主外键关系,不支持事务的。
          • 表锁 即便操做一条记录也会锁住整个表,那么不适合高并发的操做。
          • 缓存的时候只缓存索引,不缓存真实数据,真实数据是经过os级别的缓存去完成的。
        • Innodb 存储引擎
          • 安装mysqlserver就已经安装上
          • 建立表的指定便可
          • 支持外键关系,支持事务操做(大部分场景使用)
          • 行锁,操做时候只锁住一行,适合高并发操做
          • 缓存的时候不只缓存索引还缓存真实数据,对内存要求高,并且内存大小对性能影响
        • NDB存储引擎(cluster)
          • NDB存储引擎要独立于mysqlserver,单独安装
          • cluster实际上是集群自动管理的一种机制
          • mysql这方面不是很成熟,用的不多
          • PS: 有一家公司叫percona 出了一个数据库percona(对mysql进行了修改),该公司也出了一款存储引擎叫xtrdb,彻底能够代替xtrdb,而且性能和并发作的更好,而且提供了一些工具。阿里巴巴大部分mysql都是在percona的原型加以修改。
相关文章
相关标签/搜索