存储引擎

MySQL 核心技术_存储引擎

淺唱寂寞╮ 提交于 2020-01-18 04:58:10
存储引擎 1. 存储引擎介绍 相当于Linux 文件系统.组织存储表数据. 2. 存储引擎的种类 show engines; InnoDB MyISAM CSV Memory 其他的存储引擎: MariaDB : InnoDB,TokuDB ,Myrocks percona : xtradb ,TokuDB ,Myrocks TokuDB ,Myrocks : 比较适合于在写入操作较多的场景,数据量级大的场景. 原因是: 插入性能很高, 压缩比较高. 监控类的业务. 学员案例: 环境: zabbix 3.x mariaDB 5.5 centos 7.3 现象 : zabbix卡的要死 , 每隔3-4个月,都要重新搭建一遍zabbix,存储空间经常爆满. 问题 :zabbix 版本 数据库版本 —> 5.5 ----> ibdata1 ----> 5.7 ,8.0 zabbix数据库500G,存在一个文件里 优化建议: 1.数据库版本升级到Mairia 10.x版本,zabbix升级更高版本 2.存储引擎改为tokudb 3.监控数据按月份进行切割(二次开发:zabbix 数据保留机制功能重写,数据库分表) 4.关闭binlog和双1 等安全参数需要关闭 5.参数调整… 优化结果: 监控状态良好 select concat(“alter table zabbix.”,table

第五章-索引与算法

别等时光非礼了梦想. 提交于 2020-01-18 02:17:31
5.1 InnoDB存储引擎索引概述 183 InnoDB存储引擎支持以下几种常见的索引: B+树索引 全文索引 哈希索引 InnoDB 存储引擎支持的哈希索引是自适应的,InnoDB 存储引擎会根据表的使用情况自动为表生成哈希索引,不能人为干预是否在一张表中生成哈希索引。 B+树索引目前关系型数据库系统中查找最为常用和最为有效的索引。 B+树索引并不能找到一个给定键值的具体行,只能找到对应的页,然后把页读到内存,再在内存中进行查找。 5.2 数据结构与算法 184 5.2.1 二分查找法 184 5.2.2 二叉查找树和平衡二叉树 185 5.3 B+树 187 5.3.1 B+树的插入操作 187 5.3.2 B+树的删除操作 190 5.4 B+树索引 191 根据叶子节点存放的是否是一整行的信息,可将数据库中的B+树索引分为聚集索引(clustered inex)和辅助索引(非聚集索引)(secondary index) 5.4.1 聚集索引 192 聚集索引(clustered index)就是按照每张表的主键构造一棵 B+树,同时叶子节点中存放的即为表的行记录数据(所有叶子节点加起来就是整张表的行记录数据),也将聚集索引的叶子节点称为数据页。 聚集索引的存储并不是物理上连续的,而是逻辑上连续的。 5.4.2 辅助索引 196 对于辅助索引(Secondary Index

MySQL存储引擎与执行计划

不问归期 提交于 2020-01-17 13:58:19
存储引擎 存储引擎是指定在表之上的,即一个库中的每一个表都可以指定专用的存储引擎 。 不管表采用什么样的存储引擎,都会在数据区,产生对应的一个frm文件(表结构定义描述文件) 。 在新版本中frm文件已经被mysql舍弃 CSV存储引擎 为其添加索引时报错 Too many keys specified; max 0 keys allowed 为其添加默认为null的列时 提示 The storage engine for the table doesn't support nullable columns 因此,CSV引擎的表不能定义索引,列定义必须是NOT NULL,不能设置自增列 CSV数据的存储是用,隔开,可直接编辑CSV文件进行数据的插入或删除;编辑之后,要生效使用flush table xxx; Create Table : CREATE TABLE ` csv_name ` ( ` name ` varchar ( 10 ) NOT NULL , ` age ` tinyint ( 4 ) NOT NULL ) ENGINE = CSV DEFAULT CHARSET = utf8mb4 COMMENT = 'csv 测试' //插入操作 insert into csv_name values ( "wojiushiwo" , 2 ) ; insert into

MySQL性能优化学习(一)—— MySQL的执行流程

佐手、 提交于 2020-01-17 05:09:02
一、一条sql的执行过程 APP(客户端) ↓↓ 查询缓存 可以提高效率,但sql不完全一样时即失效。表内容变化时也失效。因此最好还是ORM框架去实现。 MYSQL的查询缓存默认关闭,8.0的版本以后已经去除该缓存模块。 ↓↓ 解析器 对sql进行词法解析,语法解析。判断是否正确 ↓↓ 预处理器 检查表是否存在,列是否存在 ↓↓ 查询优化器 执行前对sql进行优化,生成执行计划 查询优化器追踪: ↓↓ 查询执行引擎 由其获得执行计划去操作存储引擎 ↓↓ 存储引擎 数据存放在什么结构里,由存储引擎决定。 每个表都可以有不同的存储引擎。 查看表的存储引擎: show table status from `tablename`; 执行流程整体图: 二、存储引擎 5.5版本以前默认MyISAM,之后默认InnoDB MyISAM只支持表级别的锁,插入和查询的操作效率高,不支持事物,不支持外键。 InnoDB支持事物和外键,支持行锁,因此数据完整性较高。数据一致性要求高,比较多更新操作适用, Memory数据存放在内存中,读写数据快,如果需要临时存储数据适用。 CSV表体积较小,适用于迁移,不支持索引。 InnoDB的结构 BufferPoor:写入磁盘前先走BP,提升读写效率 RedoLog:先写日志,再把数据从内存同步到磁盘中 仅在InnoDB中实现,可用于崩溃恢复 UndoLog

python学习之关系型数据库作业

蹲街弑〆低调 提交于 2020-01-16 18:36:17
简答题 1.MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别(至少5点)? l InnoDB存储引擎 InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。 InnoDB主要特性 为MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在 SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。在SQL查询中,可以自由地将InnoDB类型的表和其他MySQL的表类型混合起来,甚至在同一个查询中也可以混合。 。 l MyISAM存储引擎 MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务,不支持外键。 MyISAM主要特性: 被大文件系统和操作系统支持。 当把删除和更新及插入操作混合使用的时候,动态尺寸的行产生更少碎片。这要通过合并相邻被删除的块,若下一个块被删除,就扩展到下一块自动完成。 每个MyISAM表最大索引数是64,这可以通过重新编译来改变。每个索引最大的列数是16。 最大的键长度是1000字节,这也可以通过编译来改变

MySQL逻辑分层

风流意气都作罢 提交于 2020-01-16 01:42:59
  连接层:提供与客户端连接的服务   服务层:  1.提供各种用户使用的接口         2.提供sql优化器   引擎层:提供了各种存储数据的方式(InnoDB,MylSAM)   存储层:存储数据   存储引擎的主要区别   InnoDB(默认引擎):事务优先(适合高并发性操作,行锁)   MylSAM:性能优先(表锁)   查看数据库支持的引擎   show engines;      查询当前使用的引擎   show variables like '%storage_engine%';      指定数据库对象的引擎 engine myisam                来源: https://www.cnblogs.com/starshine-zhp/p/12199400.html

如何安装mysql软件

故事扮演 提交于 2020-01-15 04:20:51
---恢复内容开始--- 本文非原创,引自“渣儿很好吃” MySQL安装教程(Windows系统) 渣儿很好吃 发布时间:04-02 08:53 本文摘自 千锋教育高教产品研发部编著的 《MySQL数据库从入门到精通》,如需转载,请标明来源,谢谢! 1.2.1MySQL的下载 登录https://dev.mysql.com/downloads/mysql/5.5.html#downloads,进入官网下载页面,如图1.3所示。 基于Windows平台的MySQL安装文件有两个版本,一种是以.msi为后缀的二进制安装版本,一种是以.zip为后缀的压缩版本,如图1.4所示。 这里以.msi的二进制版本为例讲解如何安装,根据电脑的操作位数,选择需要下载的安装文件,这里以64位的安装文件为例点击下载,下载完成后,安装文件如图1.5所示。 1.2.2MySQL的安装 双击安装文件进行安装,此时会弹出MySQL安装向导界面,如图1.6所示。 单击图1.6中的“Next”按钮,此时会显示用户许可协议界面,如图1.7所示。 将图1.7中的确认项勾选,然后点击“Next”按钮,如图1.8所示。 图1.8中,显示了三种可选的安装类型,三种类型的含义具体如下。l Typical(典型安装):只安装MySQL服务器、MySQL命令行客户端和命令行使用程序。 l Custom(自定义安装)

App后台开发运维——架构设计

六眼飞鱼酱① 提交于 2020-01-15 00:06:05
QQ 1285575001 Wechat M010527 技术交流 QQ群599020441 纪年科技aming 1.设计app架构 1.梳理app业务流程 2.整理业务流程可能遇到的问题 3.根据问题,探讨可执行的解决方案 4. app后台 初步架构 :3中所有技术进行有机融合 api编写: 1.api的作用(功能) 2.api需要输入的参数 3.api返回的数据 2.服务器选择 1.传统的IDC 在传统的IDC,要加cpu或内存,流程如下:   1.和客户经理商商谈所需硬件的价格   2.汇款过去,等IDC的财务确认   3.确认后,等待IDC安排工作人员升级硬件   这个流程走一次,最少也要1至2天。延迟了1至2天升级硬件,怎么保证可以快速应付爆发的业务 2.云服务器 升级硬件: 1.在用户后台选择需要的硬件配置   2.通过网络支付   3.重启服务器,升级就完成了。如果只是升级带宽,甚至不用重启。   整个过程合起来不用5分钟,简单,快捷,方便。   而且,现在的云服务器提供商,除了服务器外,还提供下面的服务:   负载均衡   云数据库   云内存存储   这些服务在app上线初期,在一台服务器上自己搭建就行了,   但随着app的发展,这些服务都需要部署在不同的服务器。      规模的增大,也要面对高可用,高并发,监控报警等问题。   这些问题如果都要后端人员处理

关系型数据库(SQL)相关练习题目

巧了我就是萌 提交于 2020-01-13 19:18:11
一、简答题。 1. MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别(至少5点)? 答:首先呢,我们要知道,引擎(Engine)是电子平台上开发程序或系统的核心组件。利用引擎,开发者可迅速建立、铺设程序所需的功能,或利用其辅助程序的运转。一般而言,引擎是一个程序或一套系统的支持部分。常见的程序引擎有游戏引擎,搜索引擎,杀毒引擎等。简单来说,存储引擎就是指 表的类型以及表在计算机上的存储方式 。 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分。不同的存储引擎决定了MySQL数据库中的表可以用不同的方式来存储。我们可以根据数据的特点来选择不同的存储引擎。 在MySQL中的存储引擎有很多种,我们可以可以通过“SHOW ENGINES”语句来查看。关于InnoDB、MyISAM、MEMORY这三种存储引擎的区别如下: 1).InnoDB存储引擎 InnoDB给MySQL的表提供了 事务处理 、 回滚 、 崩溃修复能力 和 多版本并发控制 的事务安全。在MySQL从3.23.34a开始包含InnnoDB。它是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是其他存储引擎不能比拟的。靠后版本的MySQL的默认存储引擎就是InnoDB。 InnoDB存储引擎总支持

mysql innodb 存储引擎

霸气de小男生 提交于 2020-01-12 09:39:27
--MySQL 结构有两部分组成 1.MySQL server 层 2.存储引擎层 --注:到 存储引擎层之前都属于 MySQL server 层 MySQL 5.1到 5.7 ,大版本 没有变化 , 小版本 唯一的变化就是 存储引擎 ,MySQL server 层没有变过 在 MySQL 5.5之后 包括 5.5 ,默认的存储引擎都是 innodb (engine=innodb) ,但是 在 5.5之前的版本,默认的存储引擎是 myisam ,基于表的 所以 如果是 5.5之前的版本,创建表的时候 需要指定 engine=innodb ,否则创建出来的表 都是 myisam 存储引擎的 基本上 5.1之后就是 5.5了;期间都是一个跳板 MySQL组成部分: 1.连接池组件 2.管理服务和工具组件 3.SQL接口组件 4.查询分析器组件 5.优化器组件 6.缓冲组件 7.插件式存储引擎 8.物理文件 存储引擎是基于表的,不是基于数据库的 mysql 的核心就是存储引擎       MySQL 表存储引擎 MySQL 插拔式的存储引擎架构提供了一系列标准的管理和服务支持 存储引擎是基于表的,而不是基于数据库的 根据具体的应用选择合适的存储引擎 OLTP:在线联机事物系统,---读多写少,比如:电商,支持行级锁,支持外键 OLAP:在线联机分析系统,---这个接触的几率很小