zoukankan      html  css  js  c++  java
  • MySQL mysql server与存储引擎

    mysql server系统架构

    wKiom1k-nWaxKBCNAAIcOwbR-vs445.png 

    逻辑模块组成:

    mysql逻辑模块可以分为两层架构,第一层是sql layer主要包括权限判断、sql解析、执行计划优化、query cache的处理等;第二层是存储引擎层storageengine layer,是底层数据存取操作实现部分,由多种存储引擎共同组成。

    mysql存储引擎:

    存储引擎是在mysql安装时就必须和mysql一起被编译安装了,mysql ab在架构改造的时候,让存储引擎和sqllayer各自更为独立、耦合更小、可以做到在线加载新的存储引擎,而不影响mysql的正常运行。插件式存储引擎的架构,为存储引擎加载和移动更灵活方便,也使自行开发存储引擎更为方便简单。主要插件式存储引擎包括mylsam、lnnodb、ndb cluster、maria、falcon、memory、archive等

    mylsam存储引擎简介:

    1、mysql5.1之前默存储引擎

    2、mylsam存储引擎的表在数据库中,每个表被存放为三个以表命名的物理文件:.frm  .MYI  .MYD每个表都有这样的三个文件作为存储类型的表的存储,不管这个表有多少引擎,都存放在同一个.MYI中

    3.mylsam支持的三种类型索引:B-Tree索引、R-Tree索引、Full-text索引

    4.不支持事务及只有表锁

    5.如过mysqld正在写入该表时被kill掉、主机宕机、磁盘硬件故障、mylsam存储引擎的bug都会造成表破坏

    6.mylsam的数据存放分为静态固定长度、动态可变长度、压缩三种格式

    创建数据库创建一个表估算出规划多大的空间

    wKiom1k-nXSzKDt5AAAbOTNiq78801.png 

    查看qq的表的结构

    wKioL1k-nYDxR4-ZAAAsysGTu_U172.png 

    每个字节相加等于168字节,如果每天增加10000条记录,大约需要10000x168/1024/1024=1.6MB

    如果发现某个mylsam表出现问题,可以在线通过check  table命令效验

    wKioL1k-nYqB-wpmAAAPkjTkcc8993.png 

    lnnodb存储引擎简介:

    lnnodb能那么火,主要是在于功能方面较多特点:支持事务、锁定机制的改进、实现外键、完全由用户定义表的单独存放和所有表存放在一起。

    lnnodb的物理结构分为两个部分:

    1.数据文件:

    存放数据表中的数据和所有的索引数据,包括主键和其他普通索引。

    2.日志文件:

    lnnodb的日志文件和oracle的redo日志比较相似,同样可以设置多个日志组(最少2个),同样采用轮循策略来顺序写入

    mylsam和lnnodb的区别:

    1.mylsam不支持事务,而lnnodb支持事务,lnnodb的autocommit默认打开,即每条sql语句会默认封装成一个事务,自动提交这样会影响提交速度,最好是把多条sql语句显示在begin和commit之间,组成事务提交。

    查看提交模式是否开启

    wKioL1k-nZehJ0dPAAAT78IWPNU786.png 

    wKiom1k-naKjCSn6AAAc9sawlGE653.png 

    2、InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个表。

    3、InnoDB支持外键,MyISAM不支持。

    4、InnoDB不支持全文索引(5.7支持),而MyISAM支持。

    mysqlslap性能测试mysql二种存储引擎

    mysqlslap是mysql自带的基准测试工具,优点:查询数据、使用灵活

    查看mysql数据库默认最大的连接数

    wKiom1k-neij5OmWAAANQbmTBrA209.png 

    查看默认使用的引擎

    wKiom1k-nfLSYzYQAABC-YG6DbE472.png 

    使用sql脚本测试  下面的压力测试数超出了默认数所以报错

    wKiom1k-nf7DQvfCAAAcpyTRJe4188.png 

    修改压力测试数并测试最大值为30,60超过就会出错  注:多次测试

    wKioL1k-ngvT68SgAADED9ZVwRE010.png 

    MySQL自带工具使用介绍

    mysql命名:使用最多的一个命名工具,为用户提供命令行接口来管理mysql服务器

    语法格式:mysql  [options]  [database] 可以使用mysql --help查看使用帮助信息

    运维时常用的mysql命令相关参数

    使用-e参数查看数据库

    wKioL1k-nhWStNzIAAAVY-1rAtw295.png 

    通过使用脚本创建数据库、表,对表进行增、改、删、查操作

    wKiom1k-niHzb1r7AACVgeZLuG4858.png 

    使用root用户进入mysql给test用户授权

    wKioL1k-ni7wkzYWAAAKuMjMohw289.png 

    然后给脚本授予执行权限

    wKiom1k-njmxxQ7aAAAEBFZfXTY438.png 

    启动脚本

     使用提示符登录mysql查看效果

    wKioL1k-nmrgLpmYAABTyN2LRUU028.png 

    使用tee生成一个文件;这个文件包含此数据库中所有的操作都保存到这个目录里面

    wKioL1k-nnrSVmS4AAAFNxwQYXU745.png 

     wKioL1k-noSC2-MeAAAztED0mMI677.png

    使用ping命令测试是否能正常提供服务

    wKioL1k-n-iQfllHAAAgcY60JBo107.png 

    使用status命令获取当前mysql server的几个基本的状态值

    wKiom1k-n9vg6koIAAAVj2UaHCU914.png 

    使用processlist获取当前数据库的连接线程信息

    wKiom1k-n8_zR-9wAAAoBhOmxzo887.png 

    编写mysql监控脚本

    wKioL1k-n8XiyhkHAAA4TjuimMc246.png 

    查看执行的效果 并且给脚本执行权限chmod  +x  脚本名

    wKiom1k-n7fCI1akAAB5qhnR1fo284.png 

    查看数据字典,此数据库包含了其他所有数据库的元数据,包括数据类型、访问权限

    wKiom1k-n6zzNmkJAABMZIz8Cm0044.png 

    转载自:

    https://blog.51cto.com/12832314/1934710

  • 相关阅读:
    [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
    [C#] 获取计算机内部信息
    [Bug] 解决 Sql Server 数据库死锁问题
    Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
    [svn] TortoiseSVN 图文操作
    [js] 如何 在 jQuery 中的 $.each 循环中使用 break 和 continue
    Redis 小白指南(三)- 事务、过期、消息通知、管道和优化内存空间
    Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合
    Redis 小白指南(一)- 简介、安装、GUI 和 C# 驱动介绍
    Redis 小白指南(四)- 数据的持久化保存(草稿)
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/10734684.html
Copyright © 2011-2022 走看看