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

上海网站设计公司排行榜建设网站网页打不开

上海网站设计公司排行榜,建设网站网页打不开,婚嫁行业网站模板,网站建设费走什么费用MySQL存储引擎和日志管理一、存储引擎的概念1、Myisam的特点2、Myisam表支持 3 种不同的存储格式3、innodb4、死锁5、查看系统支持的存储引擎6、查看表使用的存储引擎7、修改存储引擎8、通过 create table 创建表时指定存储引擎二、日志管理1、错误日志2、通用查询日志3、慢查询…

MySQL存储引擎和日志管理

    • 一、存储引擎的概念
      • 1、Myisam的特点
      • 2、Myisam表支持 3 种不同的存储格式
      • 3、innodb
      • 4、死锁
      • 5、查看系统支持的存储引擎
      • 6、查看表使用的存储引擎
      • 7、修改存储引擎
      • 8、通过 create table 创建表时指定存储引擎
    • 二、日志管理
      • 1、错误日志
      • 2、通用查询日志
      • 3、慢查询日志
      • 4、二进制日志
      • 5、日志查询

一、存储引擎的概念

  • MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。

  • 存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式

  • MySQL常用的存储引擎:MylSAM,InnoDB。

  • MySQL数据库中的组件,负责执行实际的数据I/O操作。

  • MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储。

1、Myisam的特点

MyISAM不支持事务,也不支持外键约束,只支持全文索引,数据文件和索引文件是分开保存的。

访问速度快,对事务完整性没有要求。
MyISAM 适合查询、插入为主的应用。

MyISAM在磁盘上存储成三个文件,文件名和表名都相同,但是扩展名分别为
.frm 文件存储表结构的定义
数据文件的扩展名为 .MYD (MYData)
索引文件的扩展名是 .MYI (MYIndex)

表级锁定形式,数据在更新时锁定整个表
数据库在读写过程中相互阻塞:
会在数据写入的过程阻塞用户数据的读取
也会在数据读取的过程中阻塞用户的数据写入
数据单独写入或读取,速度过程较快且占用资源相对少

2、Myisam表支持 3 种不同的存储格式

(1)静态(固定长度)表
静态表是默认的存储格式。静态表中的字段都是非可变字段,这样每个记录都是固定长度的,这种存储方式的优点是存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多。
(2)动态表
动态表包含可变字段,记录不是固定长度的,这样存储的优点是占用空间较少,但是频繁的更新、删除记录会产生碎片,需要定期执行 OPTIMIZE TABLE 语句或 myisamchk -r 命令来改善性能,并且出现故障的时候恢复相对比较困难。
(3 )压缩表
压缩表由 myisamchk 工具创建,占据非常小的空间,因为每条记录都是被单独压缩的,所以只有非常小的访问开支。

3、innodb

(1)支持事务,支持4个事务隔离级别(数据不一致问题)
MySQL从5.5.5版本开始,默认的存储引擎为 InnoDB
5.5之前默认是myisam
(2)读写阻塞与事务隔离级别相关
能非常高效的缓存索引和数据
表与主键以簇的方式存储
支持分区、表空间,类似oracle数据库
支持外键约束,5.5前不支持全文索引,5.5后支持全文索引
(3)对硬件资源要求还是比较高的场合
行级锁定,但是全 表扫描仍然会是表级锁定,如
update table set a=1 where user like ‘%lic%’;
(4)InnoDB 中不保存表的行数
如 select count() from table; 时,InnoDB 需要扫描一遍整个表来计 算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。需要注意的是,当 count()语句包含 where 条件时 MyISAM 也需要扫描整个表。对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中可以和其他字段一起建立组合索引。

清空整个表时,InnoDB 是一行一行的删除,效率非常慢。Myisam 则会重建表

4、死锁

(1)MyISAM:表级锁定 innodb :行级锁定
当两个请求分别访问/读取2行记录,同时又需要读取对方的记录数据,因为(行锁的限制)而造成了阻寨的现象

(2)如何解决死锁

  1. 业务场景如果并发两大,什么并发量大,读写的并发量大,那我们建议使用innoDB
  2. 如果单独的写入或是插入单独的查询,那我们建议使用没有INNODB

表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低。

行级锁:开销大,加锁慢:会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

MyISAM不支持事务,也不支持外键约束,只支持全文索引,数据文件和索引文件是分开保存的需要考虑每个存储引擎提供了哪些不同的核心功能及应用场景。

锁定类型:不同存储引擎支持不同级别的锁定

  • 表锁定:myisam支持。
  • 行锁定:innodb支持。

索引的支持

  • 建立索引在搜索和恢复数据库中的数据时能显著提高性能

  • 不同的存储弓|擎提供不同的制作索引的技术

  • 有些存储引擎根本不支持索引

  • 事务处理的支持

  • 提高在向表中更新和插入信息期间的可靠性

  • 根据企业业务是否要支持事务选择存储引擎

5、查看系统支持的存储引擎

mysql> show engines;

在这里插入图片描述

6、查看表使用的存储引擎

方法一:show table status from 库名 where name='表名'\G;例:show table status from db2 where name='account'\G

在这里插入图片描述

方法二:use 库名;
show create table 表名;例:use db2;
show create table account;

在这里插入图片描述

7、修改存储引擎

(1)通过 alter table 修改

use 库名;
alter table 表名 engine=MyISAM;例:use db2;
alter table account engine=myisam;
show create table account\G

在这里插入图片描述
(2)通过修改 /etc/my.cnf 配置文件

修改 /etc/my.cnf 配置文件,指定默认存储引擎并重启服务

quit
vim /etc/my.cnf
[mysqld]
default-storage-engine=INNODBsystemctl restart mysqld.service
#注意:此方法只对修改了配置文件并重启mysql服务后新创建的表有效,已经存在的表不会有变更。

在这里插入图片描述
在这里插入图片描述
注:此方法只对修改了配置文件并重启mysql服务后新创建的表有效,已经存在的表不会有变更。

8、通过 create table 创建表时指定存储引擎

use 库名;
create table 表名(字段1 数据类型,...) engine=MyISAM;例:mysql -u root -p
use db2;
create table emp(id int,name char,age int) engine=myisam;   #创建表时指定引擎show table status from db2 where name='emp'\G      #查看引擎

在这里插入图片描述

二、日志管理

1、错误日志

错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启。

 vim /etc/my.cnf[mysqld]log-error=/home/mysql/mysql_error.log   #指定日志的保存位置

2、通用查询日志

通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的。

 vim /etc/my.cnf[mysqld]general_log=ONgeneral_log_file=/home/mysql/mysql_general.log

3、慢查询日志

慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以找到哪些查询语句执行时间长,以便于优化,默认是关闭的。

   vim /etc/my.cnf[mysqld]slow_query_log=ONslow_query_log_file=/home/mysql/mysql_slow_query.log long_query_time=5    #慢查询时间,设置超过5秒执行的语句被记录,缺省时为10秒

4、二进制日志

二进制日志(binlog)用来记录所有更新了数据或者已经潜在更新了数据的语句,记录了数据的更改,可用于数据恢复,默认已开启。

  vim /etc/my.cnf[mysqld]log-bin=mysql-bin      #也可以log_bin=mysql-bin#使用相对路径,则文件存储在默认目录/usr/local/mysql/data/中

5、日志查询

#登入mysql
mysql -u root -p[密码]#查看通用查询日志是否开启
show variables like 'general%';	
#查看二进制日志是否开启
show variables like 'log_bin%';									
#查看慢查询日功能是否开启
show variables like '%slow%';								
#查看慢查询时间设置
show variables like 'long_query_time';						
#在数据库中设置开启慢查询的方法
set global slow_query_log=ON;									
http://www.yayakq.cn/news/981885/

相关文章:

  • 新手做网站盈利业之峰装饰公司口碑
  • 珠海市网站网站建设东莞
  • 常州网站建设报价家具网站开发
  • 淄博市住房和城乡建设局官方网站深圳建站网络公司
  • 淘宝做网站为什么那么便宜城乡建设管理局的网站
  • 福建省住房和建设网站西宁网站建设维护
  • 怎样建外贸网站小说网站如何建设
  • 网站开发工资ssr wordpress
  • 做一个小说网站需要多少钱wordpress无法更换域名
  • 熵网站杭州编程培训机构排名
  • 深圳有做网站最近价格?微信怎么开通微商城
  • 高青县住房和城乡建设局网站wordpress 防止保存图片
  • 类似淘宝网站建设费用h5网站建设需要哪些资料
  • 燕郊做网站查查企业网
  • 免费永久个人网站多仓库版仓库管理网站建设源码
  • 网站建设费如何入账怎么摊销成都有什么好玩的娱乐场所
  • 大连网站建设酷网科技网站建设 企泰科技
  • 济南网站推广建设有限公司平面设计模板素材网站
  • 网站设计需要准备哪些知识安庆网站建设服务网
  • 做百度网站图片怎么做在线做六级阅读网站
  • 林州网站建设熊掌号成都管控政策最新消息
  • 有哪些可以接单做任务的网站重庆网站建设企业
  • 多个网站建站崇州企业网站建设
  • 劳动人事争议仲裁网站建设网站开发佛山
  • 深圳建企业网站公司淘宝搜索指数
  • 没有域名可以先做网站吗软件系统开发报价表
  • 做网站用什么配置的笔记本wordpress templateredirect
  • 海盐市网站建设淘宝购物网
  • 陕西有色建设有限公司官方网站房地产销售系统管理软件
  • 怎么建设一个开源平台网站域名和网站