`
sunshadow1992
  • 浏览: 16530 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

《高性能MySQL》读书笔记(一)------ 数据库引擎

 
阅读更多

MySQL服务器由连接管理、查询缓存、SQL解析器、查询优化器以及数据存储引擎组成。其基本架构如下图所示:

图1.MySQL服务器的基本架构

其中,数据库引擎负责表的存储,索引的组织。表的存储结构以及索引的形式是由数据库引擎来完成的。MySQL发布时,自带两个数据库引擎:MyISAM、InnoDB。我们可以在my.ini配置文件中修改MySQL的默认引擎,也可以在创建表的时候,明确地指明所使用的数据库引擎。其中MyISAM是MySQL默认的数据库引擎。

 

--my.ini配置文件中设置默认数据库引擎
default-storage-engine=MyISAM

--在创建表的时候明确指明数据库引擎
create table [tableName]{
    ......
} use innodb 
 

 

MyISAM:不支持行级加锁,不支持事务,适合于大量查询与插入的场景应用。MyISAM将索引和表分别存放,分别存储为MYI、MYD文件。MyISAM有以下特点:

1、支持对整张表进行加锁,但不能对行加锁。读取时使用共享锁,写入时使用排它锁。由于插入操作不会影响原有数据,正在插入的数据也不会被并发读取(聚集操作除外),所以,插入是一种特殊的写入操作,与读取并不排斥。

2、MyISAM支持数据库表的自动修复和手工修复(##待考)。
3、可以对基于blob或者text类型表建立最长为500的前缀索引。 
4、索引可以延迟更新,先更新内存里的索引,直到只有在flush或者关闭表的时候,才将索引转储到磁盘。启用此特性,需要在表创建的时候使用delay_key_write选项。
5、MyISAM不支持外键引用。
InnoDB:支持事务的存储引擎。较MyISAM存储引擎较稳定。使用mvcc机制来进行事务的并发控制,较加锁来实现事务而言提高了速度。InnoDB有以下特点:
1、支持对表、行进行加锁。
2、使用聚集索引的形式来存储数据和索引,索引和表混生。维持多个非主键索引,在非主键索引中存储主键。这意味着在利用非主键索引进行查询的时候,可能(使用可能的隐喻是:如果索引提供了足够的信息,可能查询就只使用了索引)还需要利用主键索引来完成进一步的操作。
3、使用预读来减少I/O次数。
4、使用内存哈希索引提高查找速度。
5、提供了插入缓冲池,来应对聚集索引在插入时的低效。

数据库引擎的不同特性,是数据库引擎选择时的考量
1、应用是否需要事务支持。
2、应用的各类操作的查询频率。如果应用大量查询和插入,而更新和删除频率很低,使用MyISAM。
3、因为数据库引擎才是进行数据管理的模块,数据引擎的选择直接影响数据库的运维成本。尽量选择容易恢复与备份的数据库引擎。
4、数据引擎的其他特性。MyISAM不支持外键,但是有另外一个特性,支持FULLTEXT特性,再两者相较的时候需要权衡选择
  • 大小: 13.3 KB
分享到:
评论

相关推荐

    MySQL学习笔记5-数据库性能优化与扩展.md

    本篇学习笔记将深入探讨如何通过索引优化、查询优化以及缓存利用等多种技术手段来提升MySQL数据库的性能,并介绍数据库的扩展策略(包括垂直扩展和水平扩展)以支持更高的并发量和更大的数据规模。 #### 性能优化 ...

    MySQL学习笔记1-数据库基础.md

    - **MySQL简介**:MySQL是一种开源的关系型数据库管理系统,因其高性能、稳定性和易用性而被广泛应用于Web应用程序中。 #### 二、SQL语言基础 1. **查询数据** - **选择所有列**:`SELECT * FROM customers;` - ...

    高性能MySQL笔记-总结

    【高性能MySQL笔记-总结】 MySQL作为一款广泛应用的关系型数据库管理系统,因其开源、免费且性能卓越的特性,在互联网行业中被广泛采用。本笔记旨在系统性地介绍MySQL的基础知识、性能优化及实战案例,帮助读者深入...

    高性能mysql学习笔记

    ### 高性能MySQL学习笔记:查询性能优化与实践 #### 一、查询性能低下的原因与分析步骤 查询性能低下通常归因于访问了过多的数据。优化查询性能的关键在于识别并减少不必要的数据访问。具体可以通过以下两个步骤...

    数据库MYSQL底层原理分析-笔记-pdf

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,其底层原理对于数据库管理员和开发人员来说至关重要,能够帮助他们优化查询性能,理解事务处理,以及更好地管理数据存储。以下是对标题和描述中涉及知识点的详细...

    自学MySQL数据库笔记

    - **Oracle数据库**:作为数据库领域的领导者,Oracle数据库以其高性能、可靠性和安全性著称。它支持多种操作系统,并且在大型企业和关键业务应用中非常流行。 - **SQL Server**:由微软开发的SQL Server是一种广泛...

    《高性能MySQL》读书笔记.docx

    索引一般是放在磁盘中的,索引是存储引擎用于快速找到记录的一种数据结构。索引优化应该是对查询优化最有效的手段了。索引能够轻易将查询性能提高几个数量级,创建一个最优的索引经常需要重写查询。索引可以包含一个...

    MySQL核心技术学习笔记

    - 性能高:MySQL以其高效的数据处理能力和稳定性而著称。 - 简单易用:安装和使用过程相对简单,便于快速部署。 ##### MySQL的安装 - **安装方式**:MySQL提供两种主要类型的DBMS:基于共享文件系统的DBMS(如...

    MYSQL读书笔记整理

    MySQL数据库是世界上最受欢迎的关系型数据库管理系统之一,尤其在Web应用程序中广泛应用。它的InnoDB存储引擎提供了事务处理、行级锁定以及外键支持等功能,确保了数据的可靠性和并发性。以下是对MySQL,尤其是...

    MySQL入门到高级-康师傅版.zip

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,尤其在Web开发领域中广泛应用。本教程"MySQL入门到高级-康师傅版.zip"旨在帮助初学者快速掌握MySQL的基础,并逐步提升至高级水平。尚硅谷教育机构的宋红康老师...

    MySQL数据库入门到高级笔记快速学习pdf版本

    MySQL数据库是世界上最受欢迎的关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中。这份"MySQL数据库入门到高级笔记快速学习pdf版本"提供了从基础到高级的全面教程,适合不同水平的学习者。以下将详细...

    高性能MySQL 第三版读书笔记 一至六

    【高性能MySQL 第三版读书笔记 一至六】主要涵盖了MySQL服务器优化、操作系统和硬件优化、复制技术、可扩展性方案、MySQL分支与变种以及高可用性策略等多个方面。以下是对这些知识点的详细说明: 1. **优化服务器...

    【学习笔记】Mysql入门很简单-笔记

    - **Dedicated Server Machine**: 占用全部资源,适合高性能数据库服务。 #### 启动与登录MySQL - **服务管理**: 在Windows平台上,可以通过控制面板的“服务”管理MySQL服务的状态。 - **客户端工具**: 常见的...

    Mysql课程配套源码笔记-01.zip

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,尤其在Web应用程序中被广泛应用。本资源"2020年mysql备课用的资料"包含了学习MySQL所需的关键元素,旨在帮助初学者掌握数据库管理和开发的基础知识。 首先,...

    mysql学习笔记-数据库概述、使用、sql编写

    MySQL 提供了几个内置的系统数据库,如 `information_schema` 存储元数据,`performance_schema` 监控系统性能,`sys` 提供优化和诊断视图,以及 `mysql` 库存储用户账户和权限信息。 【总结】 MySQL 作为一款流行...

    高性能Mysql学习笔记.zip

    《高性能MySQL学习笔记》是一份全面探讨MySQL数据库优化与高效运用的资料集合,旨在帮助读者深入理解MySQL的内部机制,并掌握提升数据库性能的各种策略和技术。这份笔记可能包含了多个章节,涵盖了从基础概念到高级...

    MySQL大佬姜承尧49完整课程笔记,进阶涨薪必看,内含MySQL配置文件

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,尤其在Web应用程序中被广泛应用。姜承尧作为知名的MySQL专家,他的课程深入浅出地讲解了MySQL的高级概念和技术,帮助DBA(数据库管理员)和开发者提升技能,从而...

Global site tag (gtag.js) - Google Analytics