当前位置: 首页 > news >正文

班级网站模板下载seo快速推广

班级网站模板下载,seo快速推广,彩票网站链接怎么做,网站建设的预算费用频率难度60%⭐⭐⭐⭐ 这个问题其实难度并不是很大,只是涉及到的相关知识比较繁杂,比如事务、锁机制等等,都和存储引擎有关系。有时还会根据场景选择不同的存储引擎。 下面笔者将会根据几个部分尽可能地讲清楚 MySQL 中的存储引擎&#xff0…
频率难度
60%⭐⭐⭐⭐

这个问题其实难度并不是很大,只是涉及到的相关知识比较繁杂,比如事务、锁机制等等,都和存储引擎有关系。有时还会根据场景选择不同的存储引擎。

下面笔者将会根据几个部分尽可能地讲清楚 MySQL 中的存储引擎,让你在面对这个问题时能够从容应对。

引言

在MySQL服务端处理客户端的请求时,到服务器程序完成了查询优化为止,还没有真正地去访问真实的表中数据,MySQL服务器把数据的存储和提取操作都封装到了一个名为存储引擎的模块中。

存储引擎

MySQL 中的数据通过不同技术存储在文件(或者内存)中,这些技术中的每一种技术都是用不同的存储机制、索引技巧、锁定级别等不同功能和能力,这袭人不同的技术以及配套的相关功能被称为存储引擎

存储引擎位于MySQL服务的第三层,如图示:

在物理上如何表示记录,怎么从表中读取数据以及怎么把数据写入具体的物理存储器上,都是存储引擎负责的事情。

为了实现不同的功能,MySQL 提供了不同的存储引擎,不同存储引擎管理的表可能有不同的存储结构,采用的存储算法也可能不同。我们可以根据自己的需求选择适用于服务器、数据库和表格的存储引擎。

存储引擎是数据库的核心,对于 MySQL 来说,存储引擎是以插件的形式运行的。

种类

MySQL 支持的存储引擎种类繁多,但是常用的就那么几种:MyISAM、InnoDB、MEMORY 等。

这里列出几个更多的存储引擎及其描述:

  • ARCHIVE:用于数据存档的引擎,数据被插入后就不能在修改了,且不支持索引。
  • CSV:在存储数据时,会以逗号作为数据项之间的分隔符。
  • BLACKHOLE:会丢弃写操作,该操作会返回空内容。
  • FEDERATED:将数据存储在远程数据库中,用来访问远程表的存储引擎。
  • InnoDB:具备外键支持功能的事务处理引擎
  • MEMORY:置于内存的表
  • MERGE:用来管理由多个 MyISAM 表构成的表集合
  • MyISAM:主要的非事务处理存储引擎
  • NDB:MySQL 集群专用存储引擎

MyISAM

使用这个存储引擎,每个 MyISAM 在磁盘上存储三个文件。

  1. frm 文件:存储表的定义数据
  2. MYD 文件:存放表具体记录的数据
  3. MYI 文件:存储索引

frm 和 MYI 可以存放在不同的目录下。MYI 文件用来存储索引,但有保存记录所在页的指针,索引的结构是 B+树 结构。

 从这张图可以发现,这个存储引擎通过 MYI 的 B+树 结构来查找页,再根据记录页查找记录。并且支持全文索引、B+树索引和数据压缩。

支持数据的类型也有三种:

  1. 静态固定长度表:这种方式的优点在于存储速度非常快,容易发生缓存,而且表发生损坏后也容易修复。缺点是占空间。这也是默认的存储格式。
  2. 动态可变长表:优点是节省空间,但是一旦出错恢复起来比较麻烦。
  3. 压缩表:上面说到支持数据压缩,说明肯定也支持这个格式。在数据文件发生错误的时候可以使用check table工具来检查,而且还可以使用repair table工具来恢复。

有一个重要的特点那就是不支持事务,但是这也意味着他的存储速度更快,如果你的读写操作允许有错误数据的话,只是追求速度,可以选择这个存储引擎。

InnoDB

InnoDB是默认的数据库存储引擎,它的主要特点有:

  1. 可以自动增长列,方法是 auto_increment 。
  2. 支持事务。默认的事务隔离级别为 可重复读,通过 MVCC(并发版本控制)来实现。
  3. 使用的锁粒度为行级锁,可以支持更高的并发。
  4. 支持外键约束,外键约束降低了表的查询速度,但是增加了表之间的耦合度。
  5. 配合一些热备工具,可以支持在线热备份。
  6. 在 InnoDB 中存在缓冲管理,通过缓冲池,将索引和数据全部缓存起来,加快查询的速度。
  7. 对于 InnoDB 类型的表,其数据的物理组织形式是聚簇表。所有的数据按照主键来组织。数据和索引放在一块,都位于 B+树 的叶子节点上。

InnoDB 的存储表和索引有下面两种形式:

  1. 使用共享表空间存储:所有表和索引存放在同一个表空间中。
  2. 使用多个表空间存储:表结构放在 frm 文件中,数据和索引放在 IBD 文件中。分区表的话,每个分区对应单独的 IBD 文件。

InnoDB 表必须要有聚集索引, 默认在主键字段上建立聚集索引,在没有主键字段的情况下,表的第一个非空的唯一索引将被建立为聚集索引。在两者都没有的情况下,InnoDB 将自动生成一个隐藏的自增 ID 列,并在此列上建立聚集索引。

文件结构为:

  • .frm 表定义文件
  • .ibd 索引数据文件

对于 InnoDB 来说,最大的特点在于支持事务。但是这是以损失效率来换取的。

Memory

将数据存储在内存中,为了提高数据的访问速度,每一个表实际上和一个磁盘文件关联。文件是 frm。

  1. 支持的数据类型有限制,比如不支持 TEXT 和 BLOB 类型,对于字符串类型的数据,只支持固定长度的行,VARCHAR 会被自动存储为 CHAR。
  2. 支持的锁粒度为表级锁。所以在访问量比较大时,表级锁会成为 Memory 存储引擎的瓶颈。
  3. 由于数据是存放在内存中的,一旦服务器出现故障,数据都会丢失。
  4. 查询的时候,如果有用到临时表,而且临时表中有 BLOB、TEXT 类型的字段,那么这个临时表就会转化为 MyISAM 类型的表,性能会急剧降低。
  5. 默认使用 hash 索引。
  6. 如果一个内部表很大, 会转化为磁盘表。

区别

不同的存储引擎都有各自的特点,以适应不同的需求,我们来看一下这几种存储引擎的区别:

功 能MYISAMMemoryInnoDBArchive
存储限制256TBRAM64TBNone
支持事物
支持全文索引
支持数索引
支持哈希索引
支持数据缓存N/A
支持外键

如何选择

存储引擎这么多,看着就让人头皮发麻, 我们怎么挑啊,其实大家多虑了,我们只需要掌握在开发中最常用的 InnoDB 和 MyISAM 就可以了,偶尔还会提一下 MEMORY。其中 MySQL5.5 之后默认的存储引擎是 InnoDB。

  • 大多数情况下,使用默认的 InnoDB 就对了,InnoDB 可以提供事务、行级锁、外键、B+ 树索引等能力。
  • MyISAM 适合读更多的场景。
  • MEMORY 适合临时表,数据量不大的情况。由于数据都存放在内存,所以速度非常快。

关于存储引擎的一些操作

查看存储引擎

# 查看当前的默认存储引擎:
mysql> show variables like "default_storage_engine";
# 查询当前数据库支持的存储引擎
mysql> show engines \G;

设置表的存储引擎

创建表示指定存储引擎

 如果没有指定表的存储引擎,就会使用默认的存储引擎,我们可以显式地指定,格式如下:

########################################
CREATE TABLE 表名(建表语句) ENGINE = 存储引擎名称;
######################################### 示例
#创建表时指定存储引擎
create table engine_table_demo(id bigint(12),name varchar(200)) ENGINE=MyISAM; 
create table engine_table_demo2(id int(4),name varchar(50)) ENGINE=InnoDB;

修改表的存储引擎

如果已经建好的表,我们可以使用下面这个语句来修改表的存储引擎,格式如下:

#######################################
ALERT TABLE 表名 ENGINE = 存储引擎名称;
######################################## 示例
# 修改一个已经存在的表的存储引擎。
alter table test engine = innodb;

总结

存储引擎主要负责读取和写入底层表中的数据,MySQL 支持的存储引擎有好多种,它们的功能各有侧重,在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。

我们常用的就是 InnoDB 和 MyISAM,其中 MySQL 5.5 之后默认的存储引擎是 InnoDB。

  • InnoDB:是Mysql的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,那么 InnoDB 存储引擎是比较合适的选择。
  • MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择这个存储引擎是非常合适的(类似需求一般用mongoDB)。

🎉 如果这篇文章对你有帮助,点赞👍 收藏⭐ 关注✅ 哦,创作不易,感谢!😀 


文章转载自:
http://foliiferous.rkck.cn
http://vagi.rkck.cn
http://nematocyst.rkck.cn
http://ragnarok.rkck.cn
http://inertia.rkck.cn
http://fludrocortisone.rkck.cn
http://joypopper.rkck.cn
http://perpendicular.rkck.cn
http://privet.rkck.cn
http://doek.rkck.cn
http://konakri.rkck.cn
http://primaeval.rkck.cn
http://kotwali.rkck.cn
http://diathermic.rkck.cn
http://incorruptible.rkck.cn
http://lamellibranch.rkck.cn
http://overrefine.rkck.cn
http://veiny.rkck.cn
http://robe.rkck.cn
http://tradition.rkck.cn
http://abatement.rkck.cn
http://hematoma.rkck.cn
http://canister.rkck.cn
http://italic.rkck.cn
http://ifc.rkck.cn
http://osteocope.rkck.cn
http://chigoe.rkck.cn
http://tranquillityite.rkck.cn
http://suoloco.rkck.cn
http://tango.rkck.cn
http://nonnatural.rkck.cn
http://neuritis.rkck.cn
http://lockgate.rkck.cn
http://pseudovirion.rkck.cn
http://den.rkck.cn
http://continentalization.rkck.cn
http://polylysine.rkck.cn
http://pooh.rkck.cn
http://multiposition.rkck.cn
http://oleo.rkck.cn
http://pulse.rkck.cn
http://aphides.rkck.cn
http://fascicle.rkck.cn
http://lactone.rkck.cn
http://conscriptive.rkck.cn
http://awn.rkck.cn
http://alta.rkck.cn
http://scaldfish.rkck.cn
http://concessionary.rkck.cn
http://hard.rkck.cn
http://darshan.rkck.cn
http://standing.rkck.cn
http://visualizer.rkck.cn
http://fendant.rkck.cn
http://boite.rkck.cn
http://schizogony.rkck.cn
http://nephropathy.rkck.cn
http://prosit.rkck.cn
http://counterorder.rkck.cn
http://conservatize.rkck.cn
http://corporate.rkck.cn
http://coxalgy.rkck.cn
http://perpetuator.rkck.cn
http://sabah.rkck.cn
http://blagueur.rkck.cn
http://manicure.rkck.cn
http://hatchet.rkck.cn
http://fresnel.rkck.cn
http://fireweed.rkck.cn
http://fetoprotein.rkck.cn
http://coastline.rkck.cn
http://reincarnate.rkck.cn
http://slowly.rkck.cn
http://verbigeration.rkck.cn
http://seen.rkck.cn
http://midwest.rkck.cn
http://punnet.rkck.cn
http://dipody.rkck.cn
http://tenet.rkck.cn
http://appealing.rkck.cn
http://astragali.rkck.cn
http://comex.rkck.cn
http://percival.rkck.cn
http://pogge.rkck.cn
http://victorianize.rkck.cn
http://boathouse.rkck.cn
http://whirlicote.rkck.cn
http://sunburnt.rkck.cn
http://calligraph.rkck.cn
http://slipway.rkck.cn
http://podsolise.rkck.cn
http://hepatotomy.rkck.cn
http://gnathion.rkck.cn
http://warship.rkck.cn
http://uncomforting.rkck.cn
http://republic.rkck.cn
http://epilimnion.rkck.cn
http://hypsicephaly.rkck.cn
http://antifriction.rkck.cn
http://forwards.rkck.cn
http://www.15wanjia.com/news/80064.html

相关文章:

  • 网站建设哪家公司好网络营销策略制定
  • 做服装要看国外哪些网站360搜索推广官网
  • 电子商务网站建设策划书的流程营销培训方案
  • 国外作品集网站如何做好营销推广
  • 网上自学平台推广学院seo教程
  • 做网站pdf不能预览网络精准推广
  • 余姚网站建设公司谷歌推广公司
  • 淘宝客推广网站建设百度云网店推广有哪些方法
  • 政府网站集约化建设批示优秀的软文广告案例
  • 怎样下载网站模板想学互联网从哪里入手
  • 深圳黑马程序员培训机构地址seo sem
  • 顺义深圳网站建设公司广告投放渠道
  • 网站建设行业前景站长工具seo综合查询推广
  • 绵阳营销型网站建设网络营销广告
  • 动态网站和静态网站北京seo的排名优化
  • 政协网站建设要求广告网站留电话不用验证码
  • 专业的河南网站建设公司如何让网站被百度收录
  • 看电影电视剧的好网站纤纤影院北京网站seo技术厂家
  • 做的好的旅游网站企业网站制作公司
  • 软件系统app开发网站优化网
  • wordpress数字市场汉化搜索引擎优化的基础是什么
  • wordpress qq登录微信关于华大18年专注seo服务网站制作应用开发
  • 早期做网站 如何推广湖南seo优化推荐
  • jsp与网站开发期末试题市场调研方法有哪些
  • 河北做网站找谁互联网金融
  • 做营销型网站多少钱目前引流最好的app
  • 网站建设中的财务预算手机怎么做网站免费的
  • 好的宝安网站建设百度推广免费
  • 北京网站备案地址如何推广网上国网
  • 网站图片左右滚动windows优化大师要钱