mysql体系结构和存储引擎

转自: mysql技术内幕:innodb存储引擎(非常棒的一本书)

 

【1】mysql体系结构和存储引擎

【1.2】mysql体系结构

1)mysql数据库实例在系统上的表现就是一个进程;

2)数据库与数据库实例的区别:

数据库是文件的集合,是根据某种模型组织文件并其存放在二级存储器中的数据集合;

数据库实例是程序,用户对数据库文件的增删改查都是通过数据库实例程序去完成的;

更贴切地说:数据库是由一个个文件组成的(二进制文件),要对这些文件进行增删改查操作不能通过简单的文件操作来实现,需要通过数据库实例来完成;

 

【1.3】存储引擎

1)mysql数据库区别于其他数据库的一个最重要的特点是: 有插件式的表存储引擎;

2)存储引擎是基于数据库表而不是基于数据库的;所以不同的数据库表可以使用不同的存储引擎,尽管这些表都属于同一个数据库;

 

3)存储引擎分类:

3.1)innodb存储引擎:

a.innodb存储引擎支持事务,设计目标主要面向 OLTP(online transaction processing,联机事务处理)的应用。特点是行锁设计,支持外键,并支持非锁定度,即默认读数据不会产生锁;

b.默认隔离级别是 READ REPEATABLE 可重复读级别(RR);mysql默认隔离级别是 READ COMMITTED 可提交读(RC);

c.之外, innodb还提供了 插入缓存(insert buffer), 二次写(double write), 自适应哈希索引(adaptive hash index), 预读(read ahead)等高性能和高可用的功能;

d.innodb 采用 聚集cluster存储方式, 故每张表的存储都是按照主键的顺序进行存放的;

 

3.2)MyISAM 存储引擎:

a.myisam 不支持事务,表锁设计, 支持全文索引, 主要面向OLAP 数据库应用;(online analysis processing, 联机分析处理)

b.myisam 的缓冲池只 缓存索引文件,不缓存数据文件;

 

3.3)NDB 存储引擎:集群存储引擎, NDB == network database 网络数据库, ndb 是基于mysql集群的分布式数据库系统;

a.ndb的所有数据都放在内存中;

 

3.4)Memory 存储引擎: 内存存储引擎

a.memory 将表中数据存放在内存中, 如果数据库发生崩溃或重启,表中的数据将会丢失;

b.memory默认使用哈希索引,不是B+索引;

 

3.5)Archive 存储引擎:

a.archive 只支持 insert 和 select 操作;

b. archive 非常适合存储归档数据, 如日志信息;

 

3.6)Federated 存储引擎:

a. Federated 存储引擎表并不存放数据, 它只是指向一台远程mysql 数据库服务器上的表;

 

3.7)Maria 存储引擎:

a.Maria设计目标是取代 MyISAM 存储引擎,从而成为mysql的默认引擎;

b. Maria 存储引擎的特点:支持缓存数据和索引文件,应用了行锁,提供了MVCC功能, 支持事务和非事务安全的选项, 以及更好的blob 字符类型的处理性能;

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud配置中心内容加密

转载自 SpringCloud配置中心内容加密 从配置获取的配置默认是明文的,有些像数据源这样的配置需要加密的话,需要对配置中心进行加密处理。 下面使用对称性加密来加密配置,需要配置一个密钥,当然也可以使用RSA非对称性加密&#xff…

浮动的用法

在我们html的布局中常常会用到float(浮动)在页面布局时,一般用float属性来实现多栏布局,导航菜单等等,往往是用于图像和文字。元素的水平方向浮动意味着元素只能左右移动而不能上下移动。如果你把几个浮动的元素放到一…

高性能mysql_事务及4种隔离级别

转自 高性能mysql 【1.3】事务 1)事务定义:事务就是一组原子性的sql查询,或者说一个独立的工作单元。 即事务内的sql语句,要么全部执行成功,要么全部执行失败; 2)事务的ACID概念&#xff1a…

String、StringBuilder、StringBuffer三者执行效率

一、String、StringBuilder、StringBuffer的执行效率 StringBuilder > StringBuffer > String二、测试代码 package cn.test;public class Test {final static int COUNT 10000 * 1;public static void main(String[] args) {stringAdd(COUNT);stringConcat(COUNT);stri…

数据库死锁_死锁荔枝_解决方法

转自高性能mysql; 【1.3.2】死锁 1)死锁定义:指两个或多个事务在同一资源上相互占用, 并请求锁定对方占用的资源,从而导致恶性循环的现象; 当多个事务试图以不同顺序锁定资源时,就可能产生死锁…

sql注入攻击和PreparedStatement有效防止sql注入攻击

【1】sql注入攻击: /*** SQL 注入.*/Testpublic void testSQLInjection() {String username "a OR PASSWORD ";String password " OR 11";String sql "SELECT * FROM user_tbl WHERE user_name " username " AND " …

MVC之新增

在我们使用ASP.NET MVC时,用得最多的一定是数据的增删查改吧。我今天就讲一下,到底是如何实现数据的新增的。 顺序大概是这样的,比如:有一个新增的按钮,我们要点击它然后弹出一个模态框,我们要在模态框的in…

MySQL的表数据复制

A表B表复制A表的数据code到B表 一、普通SQL UPDATE A a,B b set b.codea.code where a.nameb.name; 二、存储过程 #定义复制存储过程 drop procedure if exists copy_A_to_B; create procedure copy_A_to_B() begindeclare a_name varchar(255);declare a_code varchar(255);de…

MVC之查询

开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.04.13我之前已经写过新增了,那么现在我来写一下查询。查询很多地方都会用到吧,比如我们要让数据在表格显示出来就要用查询来让表格数据初始化&#xf…

java反射的工具类的函数集合

import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type;/*** 反射的 Utils 函数集合* 提…

Spring Boot Server容器配置

转载自 Spring Boot Server容器配置参数配置容器 server.xx开头的是所有servlet容器通用的配置,server.tomcat.xx开头的是tomcat特有的参数,其它类似。 所有参数绑定配置类:org.springframework.boot.autoconfigure.web.ServerProperties 代码…

MVC之删除

开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.04.17在页面的数据表格中,既然有新增,那一定也有删除吧。那MVC是怎么写删除的呢,就让我来讲一下吧。 删除一般有删除单条数据和删除多条数…

转】Eclipse编辑Spring配置文件xml时自动提示类class包名

转自 http://bigdragon.iteye.com/blog/2396081 第一步,先查看下自己的Eclipse是什么版本,步骤如下: 1.1 点击Eclipse菜单‘Help -> About Eclipse’,如下图: 1.2 点击Eclipse图标如下,看清楚哦&…

Spring Boot读取配置的几种方式

转载自 Spring Boot读取配置的几种方式读取application文件 在application.yml或者properties文件中添加: info.addressUSA info.companySpring info.degreehighValue注解读取方式import org.springframework.beans.factory.annotation.Value; import org.springfra…

MVC之修改

开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.04.24ASP.NET MCV的增删查改在我前面的讲解中,我已经把前三个都说了一下,现在就只剩下修改没讲了。所以,我今天就给你们讲一下&#xff0c…

VMnet1和VMnet8 未识别的网络的解决方法

转自: https://blog.csdn.net/jackphang/article/details/8939738 我的系统是win7 64位,它居然不能识别VMnet1和VMnet8,在网上找了些资料,发现所有资料都是一样的。不过事实证明是正确的。 解决办法: 1,在…

jps命令:查看Java进程等详细信息

转载自 jps命令:查看Java进程等详细信息jps是java自带的查看java进程的命令,通过这个命令可以查看当前系统所有运行中的java进程、java包名、jar包名及JVM参数等。jps -help 可以查看命令用法。-q: 只显示VM 标示,不显示jar,class, main参数等…

MVC如何添加Model

开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.04.27初步学习MVC编程模式的时候,我基本清楚了如何创建MVC,而添加model(模型)似乎还不够理解,通过学习我大概了解了…

在win10系统中安装Visual C++ 6.0的具体方法

转自: https://blog.csdn.net/qq_39235641/article/details/79102694 很多学C语言的同学很熟悉VC6.0,但是在win10系统下,VC6.0便无法打开,报错:0x0000142。这是因为汉化版本和最新的win10系统兼容性不好导致的。win10…

如何设计一个安全的登录流程

转载自 如何设计一个安全的登录流程登录是系统中最重要的一个功能之一,登录成功就能拥有系统的使用权利,所以设计一个安全的登录流程是十分必要的,那在一般登录中需要考虑哪些重要因素呢?我们一一列表一下。使用https协议进行传输…