mysql分布式思维(一)

mysql第一讲  架构组成
1.  二进制安装即可
  windows 下的mysql  主要的配置文件是my.ini文件
  linux 下mysql 的主要配置文件是my.cnf文件一般安装之后就在/etc/my.cnf
  在linux下查看安装目录  ps -ef|grep mysql
  强调一下:企业当中一般会选择源码安装。
                源码安装 可以根据自己的需要配置一些参数。
  源码安装的时候可以选择gcc编译器,也可以选择icc编译器
  icc编译器做了很多优化,会大大提供mysql的性能
2.物理文件组成
   日志文件的选项配置
    my.cnf/my.ini
  2.1错误日志
       log-error
       记录的主要是 较为严重的警告和错误信息,每次启动和关闭的详细信息等。默认是关闭的。
  2.2二进制日志(特别强调)
      log-bin
      非常重要 将来做master/slave机制 slave要和master同步是来读master的binlog来完成同步的。
                    有些错误操作也需要通过binlog来恢复
      默认是关闭的,实际应用中应该开启。
  2.3更新日志
        现在的版本已经不支持了。
  2.4查询日志
       log
       记录所有的查询,开启之后对mysql性能影响比较大。一般是不开启的。
  2.5慢查询日志
      log-slow-queries
     配置在[mysqld]下
             选项=目录/文件名

  2.6 数据文件
       .frm文件
       .myd文件
       .myi文件
       .idb文件

3.系统架构
  服务器管理中的模块
       SQL Interface
       Parser
       Optimizer  优化器模块
                --->对于mysql而言任何查询语句都需要经过这个优化器模块来解析查询语句
         并得到最优的(是优化器模块)执行计划,然后就会按这个计划执行查询
  --->最耗时的,甚至有一些第三方的工具可以绕开这个模块。比如说:handlerSocket
       Cache        缓存
   存储引擎
       --->mysql 存储数据的地方

 4. 存储引擎
     MyISAm存储引擎
          ---->安装mysqlserver 就已经安装上
   ---->创建表指定即可。
   ---->不支持主外键关系 ,不支持事务的。
   ---->表锁   即使操作一条记录也会锁住整个表,那么不适合高并发的操作
   ---->缓存的时候只缓存索引,不缓存真实数据,真实数据是通过OS级别的缓存去完成的。
           对内存要求不高
     Innodb存储引擎
           ---->安装mysqlserver就已经安装上
    ---->创建表指定即可
    ---->支持主外键关系,支持事务操作  (大部分应用场景我们会使用innodb存储引擎)
    ---->行锁,操作时只锁某一行,不对其它行有影响,适合高并发的操作
    ---->缓存的时候不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响。
  
     NDB存储引擎(Cluster )
           ---->NDB存储引擎要独立于mysqlserver 单独安装
    ---->cluster其实是集群自动管理的一种机制
            mysql这方面还不是很成熟
     国内 阿朗(阿尔卡特朗讯)有部门使用这样的集群
                   现在很少使用

      扩展:有一家公司叫percona  出了一个数据库percona(对mysql进行了修改)
                该公司也出了一款存储引擎叫xtrdb
  完全可以替代innodb,并且在性能和并发上做得更好,并且提供了一些工具。
  阿里巴巴大部分mysql数据库其实使用的percona的原型加以修改。

猜你喜欢

转载自394498036.iteye.com/blog/2289842