MySQL 索引.事务与存储引擎 1.索引 2.事务 3.存储引擎 1.索引: 索引的概念 : 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址). 使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度. 索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容. 索引是表中一列或者若干列值排序的方法.…
MySQL 索引.事务与存储引擎 目录 MySQL 索引.事务与存储引擎 MySQL 索引 索引的概念 索引的作用及副作用 索引的作用 索引的副作用 创建索引的原则依据 索引的分类和创建 普通索引 唯一索引 主键索引 组合索引(单列索引与多列索引) 全文索引(FULLTEXT) 查看索引 删除索引 MySQL事务 事务的概念 事务的ACID特点 原子性 一致性 隔离性 MySQL事务隔离级别 查询全局事务隔离级别 查询会话事务隔离级别 设置全局事务隔离级别 设置当前会话事务隔离级别 持久性 小结…
在昨天的面试中问到了MySQL索引怎么优化(查询很慢怎么办),回答的很不理想,所以今天来总结几篇关于MySQL索引的知识. 1.什么是索引? 首先我们一定要明确什么是索引?我自己的总结就是索引是一种数据结构,可以帮助我们快速访问数据库的指定信息,就像一本书的目录一样,可以加快查询速度 2.MySQl存储引擎 MySQL中最常见的存储引擎有InnoDB和MyISAM,它们的主要区别如下: MyISAM不支持事务:InnoDB是事务类型的存储引擎. MyISAM只支持表级锁:InnoDB支持行级锁和…
一.MySQL 索引 1.索引的概念 ●索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址).●使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度.●索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容.●索引是表中一列或者若干列值排序的方法.●建立索引的目的是加快对表中记录的查找或排序. 2.索引的作用 ●设置了合适的索…
一.前言 MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.本章将介绍最为常用的两种存储引擎进行针对性的优化建议. 二.MyISAM存储引擎优化 我们知道,MyISAM存储引擎是MySQL最为古老的存储引擎之一,也是最为流行的存储引擎之一.对于以读请求为主的非事务系统来说,MyISAM存储引擎由于其优异的性能表现及便利的维护管理方式无疑是大家最优先考虑的对象.这一节我们将通过分析MyISAM存储引擎的相关特性,来寻找提高MyISAM…
一 , 逻辑分层 连接层:连接与线程处理,这一层并不是MySQL独有,一般的基于C/S架构的都有类似组件,比如连接处理.授权认证.安全等. 服务层:包括缓存查询.解析器.优化器,这一部分是MySQL核心功能,包括解析.优化SQL语句,查询缓存目录,内置函数(日期.时间.加密等函数)的实现. 引擎层:负责数据存储,存储引擎的不同,存储方式.数据格式.提取方式等都不相同,这一部分也是很大影响数据存储与提取的性能的:对存储层的抽象. 存储层:存储数据,文件系统. 二 , 存储引擎 查看数据库支持的存储…
一.索引 1.1 索引的概念 索引是一个排序的列表,存储着索引值和这个值所对应的物理地址 无须对整个表进行扫描,通过物理地址就可以找到所需数据 (数据库索引类似书中的目录,通过目录就可以快速査找所需信息) 1.2 索引的作用 建立索引之后,数据库利用各种快速定位技术,能够大大加快查询速率 当表很大或查询涉及多个表时,可以成千上万倍的提高查询速度 可以降低数据库的IO成本,还可以降低数据库的排序成本 通过创建唯一性索引保证数据表数据的唯一性 可以加快表与表之间的连接 1.3 索引的优缺点 优点:可…
一.mysql索引:提高数据库的性能(不用加内存,不用改程序,不用调sql,查询速度就可能提高百倍千倍)索引会占用磁盘空间 CREATE   INDEX   索引名   ON   数据表 (列名or字段名) 注意:对于创建的索引,只会对创建索引的字段提升速度,没有创建索引的字段,在很大的数据时,仍然很慢,不会提升速度: 1.索引的原理:(会形成一个索引的数据结构)比如:二叉树,B+树等 (没有索引时:查询语句会进行全表扫描) 代价: 1).磁盘占用 2).如果表添加了索引,对表进行dml(修改,…
参考资料:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html ———————————— 全文: 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行1…
转自:理解MySQL——索引与优化 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多).如果对之建立B-Tr…