存储引擎

MySQL体系结构

匿名 (未验证) 提交于 2019-12-02 21:59:42
MySQL 体系结构及存储引擎 体系结构 MySQL体系结构 MyISAM存储引擎 由于该存储引擎不支持事务、也不支持外键,所以访问速度较快。因此当对事务完整性没有要求并以访问为主的应用适合使用该存储引擎。 InnoDB存储引擎 mysql 5.5版本以后默认的存储引擎 由于该存储引擎在事务上具有优势,即支持具有提交、回滚及崩溃恢复能力等事务特性,所以比MyISAM存储引擎占用更多的磁盘空间。因此当需要频繁的更新、删除操作,同时还对事务的完整性要求较高,需要实现并发控制,建议选择。 MEMORY MEMORY存储引擎存储数据的位置是内存,因此访问速度最快,但是安全上没有保障。适合于需要快速的访问或临时表。 BLACKHOLE 黑洞存储引擎,写入的任何数据都会消失,可以应用于主备复制中的分发主库。 物理文件 物理文件包括:日志文件,数据文件,配置文件,pid文件,socket文件等 日志文件 error log 错误日志 排错 /var/log/mysqld.log【默认开启】 bin log 二进制日志 备份 增量备份 DDL DML DCL Relay log 中继日志 复制 接收 replication master slow log 慢查询日志 调优 查询时间超过指定值 log-error=/var/log/mysqld.log log-bin=/var/log/mysql

mysql基础

怎甘沉沦 提交于 2019-12-02 18:35:11
1、描述视图,存储过程,函数,触发器分别是什么并实践 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。表现为对实体表的查询结果,查完之后存储在视图。方便下次查询   通过视图,可以展现基表的部分数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。 创建视图 create view v_students as select stuid,name,age from students; 创建视图,将查询结果存储成视图。可方便查询 原始表 视图生成的表 查看表状态。comment表示了是view表。表示为视图 函数 create function hello() returns varchar(20) return "hello world!"; 创建一个无参数的函数。返回字符串。具体返回为 hello world 实现一个打印字符串功能 查看函数定义 创建有参数的函数 MariaDB [hellodb]> delimiter // #将命令执行;号变成 //方便区分。在定义函数内部要执行的命令时。如果出现;号将不会执行 MariaDB [hellodb]> create function del(uid int unsigned) returns varchar(20) #创建函数。添加一个个uid参数,并指定类型为数字。返回结果为字符串 -> begin

[转帖]MySQL的又一神器-锁,MySQL面试必备

心已入冬 提交于 2019-12-02 14:14:41
MySQL的又一神器-锁,MySQL面试必备 https://segmentfault.com/a/1190000020762791 lock 低一级的是 latch 原文链接:blog.ouyangsihai.cn >> MySQL的又一神器-锁,MySQL面试必备 在看这篇文章之前,我们回顾一下前面的几篇关于MySQL的文章,应该对你读下面的文章有所帮助。 InnoDB与MyISAM等存储引擎对比 面试官问你B树和B+树,就把这篇文章丢给他 MySQL的B+树索引的概念、使用、优化及使用场景 MySQL全文索引最强教程 MySQL的又一神器-锁,MySQL面试必备 1 什么是锁 1.1 锁的概述 在生活中锁的例子多的不能再多了,从古老的简单的门锁,到密码锁,再到现在的指纹解锁,人脸识别锁,这都是锁的鲜明的例子,所以,我们理解锁应该是非常简单的。 再到MySQL中的锁,对于MySQL来说,锁是一个很重要的特性,数据库的锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性,这样才能保证在高并发的情况下,访问数据库的时候,数据不会出现问题。 1.2 锁的两个概念 在数据库中,lock和latch都可以称为锁,但是意义却不同。 Latch 一般称为 闩锁 (轻量级的锁),因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差,在InnoDB引擎中

MySQL高级

别等时光非礼了梦想. 提交于 2019-12-02 09:24:13
文章目录 MySQL高级 下载与安装 修改配置文件 设置字符集 mysql架构 连接层 服务层 引擎层 存储层 存储引擎 MyISAM和InnoDB 索引 索引优势 索引劣势 索引分类 基本语法 索引结构 需要创建索引的条件 不需要创建索引的情况 性能分析 MySQL Query Optimizer MySQL常见瓶颈 Explain explain字段解释 索引优化 索引分析 索引失效 注意 查询截取分析 查询优化 order by关键字优化 group by关键字优化 慢查询日志 慢查询日志查看与开启 日志分析工具mysqldumpslow 批量数据脚本 随机产生字符串 随机产生范围数字 存储过程批量插入数据 show profile 分析步骤 全局查询日志 mysql锁机制 锁的分类 三锁(表、行、页) 表锁(偏读) 表锁分析 行锁(偏写) 并发事务处理的问题 事务隔离级别 无索引行锁升级为表锁 间隙锁的危害 如何锁定一行 行锁分析 优化建议 页锁 主从复制 复制基本原理 复制基本规则 一主一从配置 MySQL高级 下载与安装 MySQL下载地址 安装 rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm rpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm 修改初始密码 /usr

配置合适的存储引擎

a 夏天 提交于 2019-12-02 09:13:30
1、 查看数据库可配置的存储引擎 方法:登录mysql,使用show engines;查看系统所支持的引擎 [root@localhost ~]# mysql MariaDB [(none)]> show engines\G *************************** 1. row *************************** Engine: InnoDB Support: DEFAULT Comment: Percona-XtraDB, Supports transactions, row-level locking, and foreign keys Transactions: YES XA: YES Savepoints: YES *************************** 2. row *************************** Engine: MRG_MYISAM Support: YES Comment: Collection of identical MyISAM tables Transactions: NO XA: NO Savepoints: NO *************************** 3. row *************************** Engine: MyISAM Support

mysql数据存储引擎类型及其sql语句

夙愿已清 提交于 2019-12-02 06:58:33
你能用的数据库引擎取决于mysql在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。 ISAM   ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MYSQL能够支持这样的备份应用程序。 MYISAM   MYISAM是MYSQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MYISAM还使用一种表格锁定的机制,来优化多个并发的读写操作。其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MYISAM还有一些有用的扩展,例如用来修复数据库文件的MYISAMCHK工具和用来恢复浪费空间的MYISAMPACK工具。 MYISAM强调了快速读取操作,这可能就是为什么MYSQL受到了WEB开发如此青睐的主要原因

MySQL概述 - 一条查询sql语句的执行过程

好久不见. 提交于 2019-12-02 05:41:30
Server层 连接器 建立连接、获取权限、维持和管理连接。 连接建立比较复杂,建议使用长连接 定期断开长连接 mysql_reset_connection指令 查询缓存 建议关闭,任何更新操作会此table的缓存失效。命中率低 分析器 (做什么) 词法分析 -->语法分析 优化器 (怎么做) 使用哪个索引,join时决定各表连接顺序 执行器(开做) 权限验证 -> 执行 存储引擎层 负责数据的存储和提取,其架构是插件式的。不同的存储引擎共用一个 Server层 来源: https://www.cnblogs.com/yeni/p/11732377.html

MySQL各大存储引擎

痴心易碎 提交于 2019-12-02 05:02:33
MySQL各大存储引擎: 最好先看下你下的MySQL支持什么数据库引擎 存储引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Blackhole, 5. CSV, 6. Performance_Schema, 7. Archive, 8. Federated , 9 Mrg_Myisam 但是我们主要分析使用MyIsam 和InnoDB。其余略微带过,详情请分别百度。 (1)InnoDB: 定义: (默认的存储引擎) InnoDB是一个事务型的存储引擎,有行级锁定和外键约束。 Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库事务与其隔离级别的内容请见数据库事务与其隔离级别这类型的文章。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT类型的索引,而且它没有保存表的行数,当SELECT COUNT(*) FROM TABLE时需要扫描全表。当需要使用数据库事务时,该引擎当然是首选。由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用Innodb引擎会提升效率。但是使用行级锁也不是绝对的

MySQL 安装SphinxSE存储引擎

血红的双手。 提交于 2019-12-01 23:56:00
1. 基本介绍 SphinxSE是Sphinx提供的一种MYSQL的存储引擎。本质而言,SphinxSE并不像其他存储引擎,如InnoDB、MyISAM一样,SphinxSE自己并不存储任何数据。SphinxSE实际上可以理解为一个客户端,通过将用户的SQL查询语句,转换给Sphinx查询引擎。从用户的角度看,就好像数据是存储在SphinxSE引擎的表里面一样。 2. 情况说明 为MySQL安装SphinxSE存储引擎有两种情况: (1)尚未安装MySQL数据库 (2)已经安装MYSQL数据库 本文介绍的是针对第二种情况的安装方法。 3. 安装环境 Ubuntu 16.04 X86_64 4. 安装准备 首先,需要下载MySQL的源码包: ubuntu@ubuntu:~/Downloads$ wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.12.tar.gz 其次,需要下载Sphinx的源码包: ubuntu@ubuntu:~/Downloads$ wget http://sphinxsearch.com/files/sphinx-2.2.10-release.tar.gz 来源: oschina 链接: https://my.oschina.net/u/1588502/blog/675323

图解MySQL索引--B-Tree(B+Tree)

对着背影说爱祢 提交于 2019-12-01 22:06:34
看了很多关于索引的博客,讲的大同小异。但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引....或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等结构,导致在面试的时候答非所问!本文中有关存储引擎请查看 MySQL存储引擎-InnoDB和MyISAM 索引是什么? 索引是帮助MySQL高效获取数据的数据结构。 索引能干什么? 提高数据查询的效率。 索引:排好序的快速查找数据结构!索引会影响where后面的查找,和order by 后面的排序。 一、索引的分类 1️⃣从存储结构上来划分:BTree索引(B-Tree或B+Tree索引),Hash索引,full-index全文索引,R-Tree索引。 2️⃣从应用层次来分:普通索引,唯一索引,复合索引 3️⃣根据中数据的物理顺序与键值的逻辑(索引)顺序关系:聚集索引,非聚集索引。 ​ 1️⃣中所描述的是索引存储时保存的形式,2️⃣是索引使用过程中进行的分类,两者是不同层次上的划分。不过平时讲的索引类型一般是指在应用层次的划分。 就像手机分类:安卓手机,IOS手机 与 华为手机,苹果手机,OPPO手机一样。 普通索引 :即一个索引只包含单个列,一个表可以有多个单列索引 唯一索引 :索引列的值必须唯一,但允许有空值 复合索引 :即一个索引包含多个列 聚簇索引(聚集索引):