首页 > 数据库 >第二十一天:mysql架构和存储引擎

第二十一天:mysql架构和存储引擎

时间:2024-02-12 21:22:59浏览次数:28  
标签:存储 架构 name 数据库 MySQL 第二十一 引擎 mysql

  MySQL是C/S 架构的,connectors是连接器;可供Native C API、JDBC、ODBC、NET、PHP、Perl、Python、Ruby、Cobol等连接mysql;ODBC叫开放数据库(系统)互联,open databaseconnection;JDBC是主要用于java语言利用较为底层的驱动连接数据库;以上这些,站在编程角度可以理解为连入数据库管理系统的驱动,站在mysql角度称作专用语言对应的链接器. 一、存储引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力,此种技术称为存储擎,MySQL 支持多种存储引擎其中目前应用最广泛的是InnoDB和MyISAM两种 参考资料: https://docs.oracle.com/cd/E17952_01/mysql-8.0-en/storage-engines.html https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/storage-engines.html 1、MyISAM 存储引擎 MyISAM 引擎特点   不支持事务   表级锁定   读写相互阻塞,写入不能读,读时不能写   只缓存索引   不支持外键约束   不支持聚簇索引   读取数据较快,占用资源较少   不支持MVCC(多版本并发控制机制)高并发   崩溃恢复性较差   MySQL5.5.5 前默认的数据库引擎 MyISAM 存储引擎适用场景   只读(或者写较少)   表较小(可以接受长时间进行修复操作) MyISAM 引擎文件   tbl_name.frm 表格式定义   tbl_name.MYD 数据文件   tbl_name.MYI 索引文件

2、InnoDB 引擎

InnoDB引擎特点   行级锁   支持事务,适合处理大量短期事务   读写阻塞与事务隔离级别相关   可缓存数据和索引   支持聚簇索引   崩溃恢复性更好   支持MVCC高并发   从MySQL5.5后支持全文索引   从MySQL5.5.5开始为默认的数据库引擎 所有InnoDB表的数据和索引放置于同一个表空间中   数据文件:ibdata1, ibdata2,存放在datadir定义的目录下   表格式定义:tb_name.frm,存放在datadir定义的每个数据库对应的目录下 每个表单独使用一个表空间存储表的数据和索引   两类文件放在对应每个数据库独立目录中   数据文件(存储数据和索引):tb_name.ibd   表格式定义:tb_name.frm  启用:innodb_file_per_table=ON (MariaDB 5.5以后版是默认值) 3、其它存储引擎   Performance_Schema:Performance_Schema数据库使用   Memory :将所有数据存储在RAM中,以便在需要快速查找参考和其他类似数据的环境中进行快速访问。适用存放临时数据。引擎以前被称为HEAP引擎   MRG_MyISAM:使MySQL DBA或开发人员能够对一系列相同的MyISAM表进行逻辑分组,并将它们作为一个对象引用。适用于VLDB(Very Large Data Base)环境,如数据仓库   Archive :为存储和检索大量很少参考的存档或安全审核信息,只支持SELECT和INSERT操作;支持行级锁和专用缓存区   Federated联合:用于访问其它远程MySQL服务器一个代理,它通过创建一个到远程MySQL服务器的客户端连接,并将查询传输到远程服务器执行,而后完成数据存取,提供链接单独MySQL服务器的能力,以便从多个物理服务器创建一个逻辑数据库。非常适合分布式或数据集市环境   BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性   Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性   CSV:CSV存储引擎使用逗号分隔值格式将数据存储在文本文件中。可以使用CSV引擎以CSV格式导入和导出其他软件和应用程序之间的数据交换   BLACKHOLE :黑洞存储引擎接受但不存储数据,检索总是返回一个空集。该功能可用于分布式数据库设计,数据自动复制,但不是本地存储   example:"stub"引擎,它什么都不做。可以使用此引擎创建表,但不能将数据存储在其中或从中检索。目的是作为例子来说明如何开始编写新的存储引擎 4、管理存储引擎 查看mysql支持的存储引擎
show engines;
查看当前默认的存储引擎
show variables like '%storage_engine%';
设置默认的存储引擎
vim /etc/my.cnf
[mysqld]
default_storage_engine= InnoDB
查看库中所有表使用的存储引擎
show table status from db_name;
查看库中指定表的存储引擎
show table status like  'tb_name';
show create table tb_name;
设置表的存储引擎:
CREATE TABLE tb_name(... ) ENGINE=InnoDB;
ALTER TABLE tb_name ENGINE=InnoDB;

 

二、MySQL 中的系统数据库

 mysql 数据库

是mysql的核心数据库,类似于Sql Server中的master库,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息 information_schema 数据库 MySQL 5.0之后产生的,一个虚拟数据库,物理上并不存在information_schema数据库类似与"数据字典",提供了访问数据库元数据的方式,即数据的数据。比如数据库名或表名,列类型,访问权限(更加细化的访问方式) performance_schema 数据库 MySQL 5.5开始新增的数据库,主要用于收集数据库服务器性能参数,库里表的存储引擎均为 PERFORMANCE_SCHEMA,用户不能创建存储引擎为PERFORMANCE_SCHEMA的表 sys 数据库 MySQL5.7之后新增加的数据库,库中所有数据源来自performance_schema。目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容。让DBA更快的了解DataBase的运行情况    

标签:存储,架构,name,数据库,MySQL,第二十一,引擎,mysql
From: https://www.cnblogs.com/dujy/p/18013870

相关文章

  • 第二十一天:mysql服务器配置和状态
    一、服务器配置和状态官方帮助文档:https://dev.mysql.com/doc/refman/8.0/en/server-option-variable-reference.htmlhttps://dev.mysql.com/doc/refman/5.7/en/server-option-variable-reference.htmlhttps://mariadb.com/kb/en/library/full-list-of-mariadb-options-syste......
  • 【性能测试】Mysql之慢查询01
    一、Mysql常用监控指标慢查询SQL慢查询:指执行速度低于设置的阀值的SQL语句作用:帮助定位查询速度较慢的SQL语句,方便更好的优化数据库系统的性能1、开启MySQL慢查询日志参数说明:slow_query_log:慢查询日志开启状态[ON:开启,OFF:关闭]slow_query_log_file:慢查询日志存放位置......
  • 第二十一天:MYSQL视图和存储过程
    一、视图VIEW视图:虚拟表,保存有实表的查询结果,相当于别名利用视图,可以隐藏表的真实结构,在程序中利用视图进行查询,可以避免表结构的变化,而修改程序,降低程序和数据库之间的耦合度创建方法:CREATE VIEWview_name[(column_list)]  ASselect_statement  [......
  • 第二十天:mysql查询:DML、DDL、DQL
    一、DML语句DML:INSERT,DELETE,UPDATE1、INSERT语句功能:一次插入一行或多行数据语法INSERT[LOW_PRIORITY|DELAYED|HIGH_PRIORITY][IGNORE]  [INTO]tbl_name[(col_name,...)]  {VALUES|VALUE}({expr|DEFAULT},...),(...),...  [ONDUPLIC......
  • 第二十天:mysql基本语法
    一、语法标准1、数据库对象和命名数据库的组件(对象):数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等命名规则:必须以字母开头,后续可以包括字母,数字和三个特殊字符(#_$)不要使用MySQL的保留字2、SQL语句分类DDL:DataDefinationLanguage数据定义......
  • 第十九天:Mysql基础入门
    一、关系型数据库基础1、数据的分类结构化的数据   非结构化的数据  半结构化数据2、关系型数据库RDBMS (1)常用关系数据库 MySQL:MySQL,MariaDB,PerconaServerPostgreSQL:简称为pgsql,EnterpriseDBOracleMSSQLServerDB23、数......
  • 十四、MySQL与Django之Model基础
    数据库Django默认支持sqlite、mysql、oracel、postgresql等数据库1、sqlitedjango默认使用sqlite数据库Django.db.backends.sqlite3DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','NAME':os.path.join(BA......
  • 抛弃Spring Cloud Gateway,得物 使用Netty架构100Wqps网关
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • PHP项目&TP框架&SQL&XSS&架构&路由&调试&写法
    开发基础-TP框架-入口&调试&路由&写法等参考手册-TP5开发手册-为了掌握了解框架首页文件看APP_PATH定义-为了后期分析核心代码全局搜索:THINK_VERSION,为了后期分析此版本是否存在漏洞。参考手册-本地代码案例对比,为了后期分析定位代码块或测试漏洞。配置文件开关(app_debug,a......
  • Elasticsearch实现Mysql的Like效果
    在Mysql数据库中,模糊搜索通常使用LIKE关键字。然而,随着数据量的不断增加,Mysql在处理模糊搜索时可能面临性能瓶颈。因此,引入Elasticsearch作为搜索引擎,以提高搜索性能和用户体验成为一种合理的选择。1、客户的诉求在ES中,影响搜索结果的因素多种多样,包括分词器、Match搜索、Term搜......