mysql第一讲 架构组成
1. 二进制安装即可
windows 下的mysql 主要的配置文件是my.ini文件
linux 下mysql 的主要配置文件是my.cnf文件一般安装之后就在/etc/my.cnf
在linux下查看安装目录 ps -ef|grep mysql
强调一下:企业当中一般会选择源码安装。
源码安装 可以根据自己的需要配置一些参数。
源码安装的时候可以选择gcc编译器,也可以选择icc编译器
icc编译器做了很多优化,会大大提供mysql的性能
2.物理文件组成
日志文件的选项配置
my.cnf/my.ini
2.1错误日志
log-error
记录的主要是 较为严重的警告和错误信息,每次启动和关闭的详细信息等。默认是关闭的。
2.2二进制日志(特别强调)
log-bin
非常重要 将来做master/slave机制 slave要和master同步是来读master的binlog来完成同步的。
有些错误操作也需要通过binlog来恢复
默认是关闭的,实际应用中应该开启。
2.3更新日志
现在的版本已经不支持了。
2.4查询日志
log
记录所有的查询,开启之后对mysql性能影响比较大。一般是不开启的。
2.5慢查询日志
log-slow-queries
配置在[mysqld]下
选项=目录/文件名
2.6 数据文件
.frm文件
.myd文件
.myi文件
.idb文件
3.系统架构
服务器管理中的模块
SQL Interface
Parser
Optimizer 优化器模块
--->对于mysql而言任何查询语句都需要经过这个优化器模块来解析查询语句
并得到最优的(是优化器模块)执行计划,然后就会按这个计划执行查询
--->最耗时的,甚至有一些第三方的工具可以绕开这个模块。比如说:handlerSocket
Cache 缓存
存储引擎
--->mysql 存储数据的地方
4. 存储引擎
MyISAm存储引擎
---->安装mysqlserver 就已经安装上
---->创建表指定即可。
---->不支持主外键关系 ,不支持事务的。
---->表锁 即使操作一条记录也会锁住整个表,那么不适合高并发的操作
---->缓存的时候只缓存索引,不缓存真实数据,真实数据是通过OS级别的缓存去完成的。
对内存要求不高
Innodb存储引擎
---->安装mysqlserver就已经安装上
---->创建表指定即可
---->支持主外键关系,支持事务操作 (大部分应用场景我们会使用innodb存储引擎)
---->行锁,操作时只锁某一行,不对其它行有影响,适合高并发的操作
---->缓存的时候不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响。
NDB存储引擎(Cluster )
---->NDB存储引擎要独立于mysqlserver 单独安装
---->cluster其实是集群自动管理的一种机制
mysql这方面还不是很成熟
国内 阿朗(阿尔卡特朗讯)有部门使用这样的集群
现在很少使用
扩展:有一家公司叫percona 出了一个数据库percona(对mysql进行了修改)
该公司也出了一款存储引擎叫xtrdb
完全可以替代innodb,并且在性能和并发上做得更好,并且提供了一些工具。
阿里巴巴大部分mysql数据库其实使用的percona的原型加以修改。
相关推荐
MySQL Cluster是一种高可用、高性能的分布式数据库解决方案,它在MySQL服务器的基础上增加了数据的冗余和分布处理能力。本文将深入探讨MySQL Cluster的核心概念、架构、工作原理以及如何使用。 一、MySQL Cluster...
服务器型号解释 博文链接:https://394498036.iteye.com/blog/2289844
MySQL还支持分布式架构,如主从复制,以实现数据冗余和负载均衡。 2. **索引优化分析** - **索引类型**:B-Tree、Hash、R-Tree、Full-text等,其中B-Tree是最常见的索引类型,适用于范围查询。 - **唯一索引**:...
MySQL是一款广泛使用的开源关系型数据库管理系统,它以其高效、稳定、易用的特点在众多企业中占据重要地位。尚硅谷周阳老师的MySQL高级课程深入讲解了MySQL的高级特性与最佳实践,旨在帮助学员掌握更深层次的数据库...
这是一份专为深入理解MySQL数据库优化设计的学习资料,旨在帮助用户提升在实际工作中处理数据查询效率的能力。MySQL作为世界上最流行的开源关系型数据库管理系统,其性能优化是每个数据库管理员和开发者的必备技能。...
这份“MySQL优化学习思维笔记”通过xmind形式呈现,可能涵盖了上述多个方面,为学习者提供了一个系统化的框架。学习和掌握这些知识点,将有助于你成为一位出色的MySQL数据库管理员,有效地解决性能问题,提升系统的...
在深入探讨周阳老师在“尚硅谷”分享的高级MySQL课程之前,我们首先要明白MySQL是一款开源的关系型数据库管理系统,其高效、稳定性和灵活性使其在全球范围内广泛应用。周阳老师的课程旨在帮助学员掌握更深层次的...
### MySQL基本知识点思维导图解析 #### 一、MySQL基础知识 **1.1 数据库概念** - **数据库**: 存储数据的一种组织形式。 - **关系型数据库**: 通过表格形式来存储数据,每个表由行(记录)和列(字段)组成。 **...
- MySQL Cluster:分布式多节点集群,提供高可用性和数据冗余。 9. **分区与分片**: - 表分区:提高大数据量查询性能,如按时间、范围或哈希值分区。 - 数据库分片:将数据分散到多个物理服务器,实现水平扩展...
6. **分布式数据库**:如MySQL集群,通过主从复制、分区、分片等方式,实现数据的分散存储和读写分离,保证数据的一致性和高可用性。 7. **消息队列**:如RabbitMQ或Kafka,用于异步处理订单创建、支付通知等业务,...
分布式架构 漫谈分布式架构 初识分布式架构与意义 如何把应用从单机扩展到分布式 大型分布式架构演进过程 分布式架构设计 主流架构模型-SOA架构和微服务架构 领域驱动设计及业务驱动规划 分布式架构的基本...
它支持横向扩展,通过分布式架构将数据分散到多个服务器,降低单一服务器的压力。这种扩展方式成本较低,管理相对复杂,但MongoDB通过自动路由机制,使得开发者无需关心数据分布在哪些服务器上,降低了管理难度。与...
【MySQL存储过程.xmind】可能是一个思维导图,详细梳理了存储过程的概念、创建、调用、参数传递以及在实际项目中的应用案例。 综上所述,这份学习资料全面覆盖了MySQL从基础到进阶的各个方面,对于希望深入学习和...
默认情况下,MySQL的每个独立操作都是一个事务,一旦操作完成就会自动提交。 - **用户定义事务**: 用户可以通过声明事务的开始(START TRANSACTION)和结束(COMMIT或ROLLBACK)来控制事务的边界。 - **显式...
5. **数据库管理系统(DBMS)**:DBMS是一组软件,用于创建、维护和控制数据库,如Oracle、MySQL、SQL Server等。 6. **数据库设计**:包括需求分析、概念设计(ER模型)、逻辑设计(DDL语句)、物理设计(考虑存储...
TiDB是一个典型的NewSQL数据库,它提供了与MySQL兼容的SQL支持,支持水平弹性扩展,具有分布式事务和跨数据中心的数据强一致性保证。 TiDB的设计目标是同时满足OLTP和OLAP的需求,尤其是在大规模数据处理场景下。...
在现代企业级应用开发中,SpringCloud作为一款强大的微服务框架,被广泛应用于构建分布式敏捷开发系统。本项目以“基于Springcloud的分布式敏捷开发系统架构,提供整套公共微服务模块:集中权限管理(单点登录)等”...
NoSQL(Not Only SQL)数据库是一种非关系型数据库,它的设计目标是处理大规模数据,特别是在分布式计算环境中。与传统的SQL(结构化查询语言)数据库不同,NoSQL数据库不依赖于固定的表结构,支持多种数据模型,如...