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

wordpress后台慢的问题seo搜索引擎实战详解

wordpress后台慢的问题,seo搜索引擎实战详解,海外 国内网站建设,6做网站MySQL中的数据目录 确定MySQL的数据目录 到底MySQL把数据都存到哪个路径下呢?其实数据木对应着一个系统变量datadir,我们在使用客户端与服务器建立连接之后查看这个系统变量的值就可以了。 -- 以下两种方式都可以 show variables like datadir; selec…

MySQL中的数据目录

确定MySQL的数据目录

到底MySQL把数据都存到哪个路径下呢?其实数据木对应着一个系统变量datadir,我们在使用客户端与服务器建立连接之后查看这个系统变量的值就可以了。

-- 以下两种方式都可以
show variables like 'datadir';
select @@datadir;

当然这个目录可以通过配置文件进行修改,由我们自己指定。

数据目录都放些什么?

MySOL在运行过程中都会产生哪些数据呢?当然会包含我们创建的数据库、表、视图和触发器等用户数据,除了这些用户数据,为了程序更好地运行,MySQL也会创建一些其他的额外数据。

数据库在文件系统的中表示

create database lijin charset=utf8;

在这里插入图片描述

每当我们使用create database语句从创建一个数据库时,在文件系统上实际发生了什么呢?其实很简单,每个数据库都对应数据目录下的一个子目录,或者说对应一个文件夹,我们每当新建一个数据库时,MySQL会帮我们做这两件事儿:

  1. 在数据目录下创建一个和数据库名同名的子目录(或者文件夹)
  2. 在该与数据库名同名的子目录下创建一个名为db.opt的文件,该文件中包含了该数据库的各种属性,比方说该数据的字符集和比较规则等。

在这里插入图片描述
比方说我们查看一下在我的计算机上当前有哪些数据库︰
在这里插入图片描述
可以看到在当前有5个数据库,其中 linjin 数据库是我们自定义的,其余4个数据库是属于MySQL自带的系统数据库。我们再看一下数据目录下的内容:
在这里插入图片描述
在这里插入图片描述
当然这个数据目录下的文件和子目录比较多,但是如果仔细看的话,除了information_schema这个系统数据库外,其他的数据库在数居目录下都有对应的子目录。这个information_schema比较特殊,我们后面再讲它的作用。

数据表在文件系统中的表示

我们的数据其实都是以记录的形式插入到表中的,每个表的信息其实可以分为两种。

  • 表结构的定义
  • 表中的数据

表结构就是该表的名称是啥,表里边有多少列,每个列的数据类型是啥,有啥约束条件和索引,用的啥字符集和比较规则各种信息,这些信息都体现在了我们的见表语句中了。为了保存这些信息,InnoDB 和 MyISAM 这两种哪个存储引擎都在数据目录下对应的数据库子目录下创建了一个专门用于描述表结构的文件,文件名是这样:tableName.frm。

比方说我们在lijin数据库下创建一个名为test的表
在这里插入图片描述
那在数据库 lijin 对应的子目录下就会创建一个名为test.frm的用于描述表结构的文件。这个后缀名为.fm是以二进制格式存储的。
在这里插入图片描述
那表中的数据存到什么文件中了呢?不同的存储引擎就有所不同,下边我们分别看了下 InnoDB 和 MyISAM 是用什么文件来保存表中数据的。

InnoDB是如何存储表数据

InnoDB 的数据会放在一个表空间或者文件空间(英文名: table space 或者 file space )的概念,这个表空间是一个抽象的概念,它可以对应文件系统上一个或多个真实文件〈不同表空间对应的文件数量可能不同)。每一个表空间可以被划分为很多很多很多个页,我们的表数据就存放在某个表空间下的某些页里。表空间有好几种类型。

系统表空间(system tablespace)
这个所谓的系统表空间可以对应文件系统上一个或多个实际的文件,默认情况下,InnoDB 会在数据目录下创建一个名为 ibdata1 (在你的数据目录下找找看有木有)、大小为12M的文件,这个文件就是对应的系纳表空间在文件系统上的表示。
在这里插入图片描述
这个文件是所谓的自扩展文件,也就是当不够用的时候它会自己增加文件大小,当然,如果你想让系统表空间对应文件系统上多个实际文件,或者仅仅觉得原来的 ibdata1 这个文件名难听,那可以在 MySQL 启动时配置对应的文件路径以及它们的大小,我们也可以把系统表空间对应的文件路径不配置到数据目录下,甚至可以配置到单独的磁盘分区上。

需要注意的一点是,在一个MySQL服务器中,系统表空间只有一份。从MySQL5.5.7到MySQL5.6.6之间的各个版本中,我们表中的数据都会被默认存储到这个系统表空间。

独立表空间(file-per-table tablespace)
在 MySQL5.6.6 以及之后的版本中,InnoB 并不会默认的把各个表的数据存储到系统表空间中,而是为每一个表建立一个独立表空间,也就是说我们创建了多少个表,就有多少个独立表空间。使用独立表空间来存储表数据的话,会在该表所属数据库对应的子目录下创建一个表示该独立表空间的文件,文件名和表名相同,只不过添加了一个. ibd 的扩展名而已,所以完整的文件名称长这样:tableName.ibd

比方说假如我们使用了独立表空间去存储lijin数据库下的test表的话,那么在该表所在数据库对应的lijin目录下会为test表创建这两个文件:
test.frm和test.ibd
在这里插入图片描述
其中test.ibd文件就用来存储test表中的数据和索引,.frm 格式的文件前面已经说过,这里就不再赘述了。当然我们也可以自己指定使用系统表空间还是独立表空间来存储数据,这个功能由启动参数
innodb_file_per_table 控制,比如说我们想刻意将表数据都存储到系统表空间时,可以在启动MySQL服务器的时候这样配置:

[server]
innodb_file_per_table=0

  • innodb_file_per table的值为0时,代表使用系统表空间;
  • innodb_file_per table的值为1时,代表使用独立表空间。

不过inmodb_file_per_table参数只对新建的表起作用,对于已经分配了表空间的表并不起作用。

其他类型的表空间
随着 MySQL 的发展,除了上述两种老牌表空间之外,现在还新提出了一些不同类型的表空间,比如通用表空间(general tablespace) 、undo表空间(undotablespace)、临时表空间〈temporary tablespace)等。

MyISAM是如何存储表数据的

在 MyISAM 中的数据和索引是分开存放的。所以在文件系统中也是使用不同的文件来存储数据文件和索引文件。而且和 InnoDB 不同的是,MyISA 并没有什么所谓的表空间一说,表数据都存放到对应的数据库子目录下。
在这里插入图片描述
test_myisam 表使用 MyISAM 存储引擎的话,那么在它所在数据库对应的 lijin 目录下会为 MyISAM表创建三个文件:
在这里插入图片描述
其中 test_myisam.MYD 代表表的数据文件,也就是我们插入的用户记录; test_myisam.MYI 代表表的索引文件,我们为该表创建的索引都会放到这个文件中。

http://www.dtcms.com/wzjs/323930.html

相关文章:

  • 网站建设_广州网站建设专业公司google 官网入口
  • 网站推广的方法和渠道北京seo公司有哪些
  • wordpress站群软件seo sem推广
  • 用html做家谱网站代码查询网址域名ip地址
  • 电子商务网站开发教程长春网络推广公司哪个好
  • 免费自己做网站吗什么是新媒体营销
  • wordpress 付费主题 时间seo实战密码电子版
  • 入替皮杖 wordpress唐山seo排名
  • 电力建设网站进不去一站式快速网站排名多少钱
  • h5个人网站源码新手如何涨1000粉
  • 重庆网站建设推广推广平台免费b2b网站大全
  • 网站策划的内容seo优化按天扣费
  • 北京 做网站站长工具国产
  • 潍坊市网站新站seo外包
  • 深圳的网站建设公司排名百度号码查询平台
  • 网站定制开发是什么意思网络营销推广优化
  • 科技袁人袁岚峰seo推广软件排行榜前十名
  • 做 淘宝客最大的网站是叫什么名字四种营销策略
  • 公司建网站要多少钱营销型网站有哪些功能
  • 做淘宝客如何引出图片到网站百度首页百度
  • 游戏开发物语完美搭配百度推广怎么优化关键词的质量
  • 建个企业网站多少钱百度网站快速排名公司
  • 专业建设网站应该怎么做google网页版入口
  • 有域名一定要买空间做网站中国数据网
  • 为什么很多公司做网站建设成品网站1688入口网页版怎样
  • 中国风格网站企业网络规划设计方案
  • 网络网站建设价格山东百度推广代理
  • 广广东网站建设企业培训内容包括哪些内容
  • 校园网站建设情况快抖霸屏乐云seo
  • 陇南做网站seo公司推荐