wordpress怎么离线修改主页页脚,百度有专做优化的没,南京网站建设公司 雷,互联网宣传推广目录
前言
数据库基础
1.什么是关系型数据库和非关系型数据库#xff1f;
2.什么是 SQL#xff1f;
3.MySQL 有什么优点#xff1f;
4.MySQL 的基础架构?
存储引擎
1.MySQL 支持哪些存储引擎#xff1f;默认使用哪个#xff1f;
2.MySQL 存储引擎架构了解吗
2.什么是 SQL
3.MySQL 有什么优点
4.MySQL 的基础架构?
存储引擎
1.MySQL 支持哪些存储引擎默认使用哪个
2.MySQL 存储引擎架构了解吗
3.MyISAM 和 InnoDB 有什么区别(重点) 前言
数据库篇内容是属于比较注重实战的技术死记硬背是很难理解推荐下丁奇大佬的《mysql45讲》由浅入深讲的非常好虽然大佬犯事了但是45讲真的经典。看看对数据库会有进一步的认识。
MySQL内容挺多后续从索引事务锁日志性能优化方面具体归纳总结。 数据库基础
1.什么是关系型数据库和非关系型数据库
关系型数据库Relational Database是一种基于关系模型即表格模型的数据库其中数据以表格形式组织每个表格包含了多行数据每行数据又包含了多个属性即列。这些表格之间可以通过共同的字段建立关联从而形成一个复杂的数据结构。关系型数据库通常使用SQLStructured Query Language来进行数据操作和查询。这些数据库通常支持ACIDAtomicity、Consistency、Isolation、Durability事务具有强一致性和数据完整性。
相对而言非关系型数据库NoSQLNot Only SQL则不遵循关系模型的原则通常采用键-值存储、文档存储、列族存储等方式来存储和组织数据。非关系型数据库通常不使用SQL进行数据操作和查询而是使用特定的查询语言或API。这些数据库通常具有高可伸缩性和高性能但可能会牺牲一致性和数据完整性。
2.什么是 SQL
SQLStructured Query Language结构化查询语言是一种用于管理关系型数据库的标准语言。
SQL语言包含一组命令和语句可以用于创建、查询、更新和删除数据库中的数据。常见的SQL命令包括SELECT、INSERT、UPDATE和DELETE等这些命令可以用于从数据库中检索数据、添加新数据、更新和删除现有数据等操作。
SQL语言具有以下特点
结构化SQL是一种结构化语言其语法和格式非常规范具有良好的可读性和可维护性。简单易学SQL的语法和语义非常简单容易学习和理解即使对编程没有经验的人也可以很快上手。独立于数据库系统SQL是一种标准化的语言可以在各种不同的关系型数据库系统中使用如MySQL、Oracle、SQL Server等。支持事务处理SQL支持事务处理和并发控制可以保证数据的一致性和完整性。
3.MySQL 有什么优点
可靠性MySQL经过广泛测试和应用验证具有高可靠性和稳定性可以处理大量数据和并发请求。高性能MySQL具有快速的读写速度和高效的索引机制可以快速执行复杂的查询和事务操作。可扩展性MySQL支持分布式部署和集群架构可以快速扩展和水平扩展适合大规模应用场景。易用性MySQL具有良好的可用性和易用性提供了友好的图形化用户界面和命令行界面同时支持多种编程语言的API接口方便开发人员进行数据操作和管理。开放源代码MySQL是一种开放源代码的数据库管理系统可以免费下载、使用和修改同时具有强大的社区支持和广泛的开发者社区。安全性MySQL提供了各种安全措施和机制如密码加密、访问控制、数据备份和恢复等可以保证数据的安全和可靠性。
4.MySQL 的基础架构?
MySQL基础架构可以分为两个主要部分Server层和存储引擎层。 1.Server层
Server层是MySQL基础架构的上层部分主要负责处理客户端连接、SQL解析、查询优化、缓存、事务管理、权限控制等功能。Server层包括以下组件
连接器Connection Manager负责处理客户端连接请求建立和管理客户端连接。当客户端发起连接请求时连接器会验证连接权限、分配线程和连接资源并返回连接结果给客户端。查询缓存Query CacheMySQL支持查询缓存可以将查询结果缓存在内存中提高查询性能。查询缓存会在查询之前检查是否已经有相同的查询被缓存如果已经缓存则直接返回结果。MySQL 8.0 版本后移除因为这个功能不太实用。分析器Parser负责解析客户端提交的SQL语句进行语法检查和语义分析。分析器会检查SQL语句是否符合语法规范如是否缺少关键字、是否拼写错误等。优化器Optimizer负责对SQL语句进行优化提高查询性能。优化器会对SQL语句进行重写、表连接顺序优化、索引选择等操作以找到最优的查询执行计划。执行器Executor负责执行SQL语句并返回结果给客户端。执行器会根据优化器的执行计划访问存储引擎层的数据并进行数据操作和查询。
2.存储引擎层
存储引擎层是MySQL基础架构的下层部分主要负责数据的存储和检索。MySQL支持多种不同的存储引擎每种存储引擎都有不同的特点和适用场景。
存储引擎
1.MySQL 支持哪些存储引擎默认使用哪个
MySQL 支持多种存储引擎你可以通过 show engines 命令来查看 MySQL 支持的所有存储引擎。 InnoDB支持事务、行级锁定、外键约束、多版本并发控制MVCC等特性是MySQL 5.5版本之后的默认存储引擎。MyISAM不支持事务和行级锁定但具有快速读取和写入的优点适合用于数据仓库和读密集型应用。Memory将数据存储在内存中适合用于缓存和临时数据的存储。Archive用于存储归档数据具有高压缩比和快速插入的特点但不支持索引和更新操作。CSV将数据以逗号分隔的方式存储在CSV文件中适合用于数据交换和数据导出。Blackhole将写入的数据丢弃但仍可以保留二进制日志适合用于数据复制和备份。NDB Cluster用于集群环境支持分布式存储和高可用性。
默认情况下MySQL 5.5版本及以后的版本使用InnoDB作为默认存储引擎。
2.MySQL 存储引擎架构了解吗
MySQL存储引擎的插件式架构是其设计中的重要特点之一。该架构的基本思想是将数据存储和管理的功能从数据库服务器的核心代码中分离出来作为独立的组件实现并以插件的形式加载到MySQL服务器中。这样一来用户可以根据自己的需求和场景选择不同的存储引擎从而获得更好的性能和可靠性。并且你还可以根据 MySQL 定义的存储引擎实现标准接口来编写一个属于自己的存储引擎。
另外MySQL的存储引擎是基于表的而不是基于数据库的。这意味着用户可以为不同的表选择不同的存储引擎以满足不同表的不同需求。例如对于高并发的 OLTP联机事务处理应用可以选择使用InnoDB存储引擎来保证数据的一致性和事务的可靠性而对于只读的数据仓库可以选择使用MyISAM存储引擎来提高查询性能。
3.MyISAM 和 InnoDB 有什么区别(重点)
MyISAM和InnoDB是MySQL中最常用的两种存储引擎它们的差异主要体现在以下几个方面
1.事务支持MyISAM不支持事务而InnoDB支持ACID事务可以保证数据的一致性和可靠性。
2.锁机制MyISAM使用表级锁即在进行写操作时会锁定整个表而InnoDB支持行级锁定和表级锁定可以更好地支持并发操作。
3.索引结构MyISAM使用B树索引而InnoDB使用B树索引B树索引支持范围查询和排序等操作效率更高。
4.缓存MyISAM的缓存机制只有一级缓存而InnoDB有多级缓存包括查询缓存、InnoDB缓存池和操作系统缓存能够更好地提高查询性能。
5.外键支持MyISAM不支持外键而InnoDB支持外键可以保证数据的完整性和一致性。
6.数据和索引存储方式MyISAM将数据和索引分别存储在不同的文件中而InnoDB则将数据和索引保存在同一个文件中。
7.是否支持异常崩溃后恢复
MyISAM 不支持而 InnoDB 支持。
使用 InnoDB 的数据库在异常崩溃后数据库重新启动的时候会保证数据库恢复到崩溃前的状态。这个恢复的过程依赖于 redo log 。
8.性能差别
InnoDB 的性能比 MyISAM 更强大不管是在读写混合模式下还是只读模式下随着 CPU 核数的增加InnoDB 的读写能力呈线性增长。MyISAM 因为读写不能并发它的处理能力跟核数没关系。 附一张图