- 浏览: 421836 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (318)
- js (20)
- JQuery (2)
- Java (46)
- Oracle (4)
- mysql (21)
- ExtJs (17)
- Excel (2)
- Linux (8)
- Sql (8)
- Jsp (2)
- hibernate (12)
- jbpm (17)
- eclipse (8)
- 名博收藏 (1)
- Junit (2)
- 应用集成 (3)
- web (10)
- jboss (3)
- Rest (3)
- 其它 (7)
- 磁盘分区管理 (1)
- spring (18)
- SSO (4)
- tomcat (4)
- CSS (7)
- MemCached (6)
- EhCache (4)
- weblogic (1)
- apache (6)
- Exception design (1)
- db (1)
- 分析模式 (1)
- jstl (1)
- jsf (0)
- firefox (2)
- MongoDB (4)
- androidpn (1)
- hadoop (1)
- cvs (1)
- 微信公众号 (2)
- 高并发 (4)
- 技术论坛 (1)
- CDN (1)
- JVM (16)
- 加密 (4)
- maven (2)
- jenkins (1)
- hessian (1)
- 大数据处理 (2)
- NIO (0)
- netty (1)
- redis (1)
- git (1)
- Elastic Job (0)
最新评论
-
zgw06629:
或者<pre>aaaabbbbcccc</p ...
javaDoc注释换行 -
ddnzero:
...
StringBuffer换行 -
maosijun:
。。。。
EXT CExt.form.ComboBox选择一次后只剩一个选项 -
ysa198584:
你这有问题,当我的代码出现User.class的时候,反编绎的 ...
java的class文件批量反编译 -
dongj0325:
看到您的博客,很受启发,但还有关于jbpm4.4 timer使 ...
JBPM定时器(Timer)之Repeat属性不能使用变量
行, 表及文件
每个文件可以划分为数据页(Data page),或简称为页(page);页与业之间有空隙隔开,每个页上面用于存储一行或多个表行,在向表插入数据时Mysql会自动把他存储在最后一页的最后一行之后,如果页已经满了就新建一页。当删除一行时,在删除行的所在页就会留下一个空行,而这个空行Mysql是不会去自动填满的,因为这样会降低插入数据的效率。
有两个因素决定了在页中实际插入了多少行:页的长度及行的长度,页的 大小取决于操作系统和存储引擎,像2k,4k,8k及16k等。
操作系统从硬盘读取文件是以页为单位的,所以当从表中查询一行时是把这行所在的也加载到内存,然后再读取这一行,而不是只从硬盘上读取要找的那一行。
Mysql索引工作方式
Mysql有数种方法来访问一个表中的行,我们知道的就有顺序访问和索引访问。顺序访问就是对表逐行扫描,而索引则采 取类似书的目录的方式检索。Mysql支持使用索引的三种算法:第一种是用来查找一个特定的值所出现的行。第二种是通过一个排序的列来浏览整个表或表的一部分,如果必须获取一个列的几个值的话就是用第三种算法。
索引有以下特点
1.当对表进行增,删,改时Mysql会自动更新索引(有可能产生性能消耗);
2.可以在非唯一性的列上建立索引;
3.可以再一个表上建立多个索引;
4.索引也可以在组合列上建立;
5.索引节点会占用一定的表空间;
创建索引
1.
create [<index type>] index <indexName>
[using {BTREE |HASH}]
ON <table specification>(<column in index>[,<column in index>]...)
index type有 UNIQUE,FULLTEXT,SPATIAL.
2. ALTER TABLE ADD INDEX ..
3. 定义表时
删除索引
DROP INDEX indexName ON tableName;
索引和主键
在一条CREATE TABLE语句中或者使用一条ALTER TABLE语句定义了一个主键或替代主键Mysql会自动创建一个唯一索引。
为索引选择列
1.候选键上的唯一索引。
2.外键上的索引。
3.包含在选择标准中的列上的索引;
一个索引在使用=,<,<=,>和>=时适用,但是在选择的行数只占表总行数的较小百分比的情况下。
什么时候选择使用索引取决于几个因素:
1.条件值在表中的行数,也就是表的可压缩性。
2.表的行数,表行越多,效果越明显;
3.一个列中值的分部。
发表评论
-
Mysql Too Many Open Files彻底解决办法
2017-02-09 18:19 5132Mysql Too Many Open Files彻底解决办 ... -
mysql快速执行超大sql脚本方法
2015-07-16 16:09 1728使用mysql数据库时,经常会碰到这个问题,特别是sql脚本 ... -
使用MySQL Proxy解决MySQL主从同步延迟
2015-05-13 11:14 538使用MySQL Proxy解决MySQL ... -
数据库sharding(scale up to scale out)
2012-11-16 10:53 685转自:http://eddysheng.iteye.com/b ... -
构建高性能web之路------mysql读写分离实战
2012-11-16 10:37 1075转自:http://blog.csdn.net/cutesou ... -
MySQL主从服务器的原理和设置
2012-11-16 10:24 775一 主从配置的原理 mysql的Replic ... -
MySQL索引分析和优化
2012-04-10 11:02 726什么是索引? 索引用 ... -
MySQL分区表的使用介绍
2012-04-10 10:27 1197MySQL使用分区表的好处: 1,可以把一些归类的数据放在一 ... -
[Err] 1153 – Got a packet bigger than ‘max_allowed_packet’ bytes
2011-10-10 19:07 918mysql> show global variables ... -
2006 - MySQL server has gone away
2011-10-10 19:05 1336命令:show global variables like ' ... -
mysql varchar长度过大引起hibernate原生态SQL错误:No Dialect mapping for JDBC type: -1错误的解决方法
2010-08-31 15:20 1717先把异常抛出来: Hibernate: select sum ... -
MySQL索引类型一览 让MySQL高效运行起来
2010-02-08 10:08 2707本文介绍了七种MySQL ... -
MySQL中的ORDER BY排序实现方式
2010-02-08 09:51 1332总的来说,在 MySQL 中的ORDER BY有两种排序 ... -
MySQL导入导出.sql文件
2010-02-04 14:37 798MySQL导入导出: http://blog.csdn.ne ... -
Mysql:InnoDB行锁特点
2010-02-03 14:13 963InnoDB行锁特点: http://blog.chin ... -
Mysql:ROW_COUNT()返回前一个SQL进行UPDATE,DELETE,INSERT操作所影响的行数
2010-02-03 14:09 5546在Mysql中ROW_COUNT()返回前一个SQL进行UPD ... -
JDBC调用存储过程详解
2010-02-01 14:47 881最近用到在JDBC中调用Mysql存储过程: try { ... -
Mysql:存储过程中动态SQL返回多个值的写法
2010-01-30 17:48 3010DROP PROCEDURE IF EXISTS TEST; ... -
MySQL错误:Out of range value adjusted for column ...
2010-01-30 17:24 2112写Mysql存储过程时碰见了这样的错误:Out of rang ... -
“0x005346c4”指令引用的“0x00786000”内存,该内存不能为读
2009-11-08 10:43 2001Mysqld-nt.exe应用程序错误: “0x00534 ...
相关推荐
### MySQL 索引与执行计划 #### 一、索引与执行计划 ##### 1.1 索引入门 在深入探讨之前,我们首先需要理解什么是索引以及其重要性。 ###### 1.1.1 索引是什么 索引(Index)在MySQL中是一种帮助数据库高效获取...
### MySQL索引最佳实践 #### 理解索引的重要性 在数据库管理中,索引是一种数据结构,用于提高查询速度。它对于开发者和数据库管理员(DBA)来说至关重要。索引选择不当可能会导致生产环境中的诸多问题。尽管索引...
MySQL索引优化是数据库性能提升的关键环节,本篇主要探讨了几个关于MySQL索引使用和优化的重要知识点。 首先,创建了一个名为`employees`的员工记录表,其中包含`id`(主键)、`name`、`age`、`position`和`hire_...
MySQL 索引类型大汇总 MySQL 索引类型是数据库性能优化的关键所在。索引可以大幅度提高查询速度,提高数据库的高效运行。在 MySQL 中,索引可以分为单列索引和组合索引两种。 1. 普通索引 普通索引是最基本的索引...
### MySQL索引最佳实践 #### 一、理解MySQL索引的重要性 索引是数据库性能优化中最常用也是最重要的手段之一。合理的索引设计可以显著提高查询效率,减少服务器资源的消耗。在MySQL中,索引的选择与配置对于开发...
MySQL索引优化是数据库性能提升的关键技术之一,尤其在处理大量数据时,高效索引能够显著加快查询速度,降低服务器负载。本课件主要聚焦于MySQL数据库的索引原理、优化策略以及相关存储过程和触发器的应用。 首先,...
### MySQL索引分析和优化 #### 一、索引的重要性及原理 索引在数据库管理中扮演着极其重要的角色,特别是在提高数据检索速度方面。**MySQL索引**本质上是用来加快数据检索过程的一种数据结构,类似于书籍中的目录...
### MySQL索引和锁机制详解 #### 一、索引基础 **索引定义:** 索引是MySQL中用于提高查询效率的一种数据结构。通过索引可以在数据表中快速定位到所需的数据行,大大减少不必要的全表扫描。 **索引的重要性:** 1....
【MySQL索引 使用笔记】 MySQL数据库是世界上最流行的开源关系型数据库管理系统之一,其高效的数据查询能力在很大程度上依赖于索引。本笔记将深入探讨MySQL中的索引使用,旨在帮助你提升数据库性能。 1. 索引的...
由浅入深探究mysql索引结构原理、性能分析与优化
mysql索引与视图实例附答案宣贯 在本篇文章中,我们将探讨 MySQL 中的索引和视图这两个重要概念,并通过实例和答案来宣贯相关知识点。 索引概念: 索引是一种数据结构,它可以提高查询的速度。索引可以创建在表上...
### MySQL索引背后的数据结构及算法原理 #### 数据结构及算法基础 索引在数据库中的作用至关重要,它能够显著提高数据检索的速度。正如标题所提到的,“MySQL索引背后的数据结构及算法原理”这一主题是技术面试中...
MySQL 索引数据结构是数据库管理系统中提升查询效率的关键技术。当我们在处理查询速度较慢的 SQL 语句时,通常会考虑引入索引来优化。索引是一种特殊的数据结构,它按照一定的排序规则存储了数据表中的部分或全部...
MySQL索引原理及慢查询优化是数据库管理中的重要主题,尤其是在高并发、大数据量的互联网环境中,优化查询性能对于系统的整体效能至关重要。MySQL作为广泛使用的开源关系型数据库,其索引机制和查询优化技巧是开发者...
MySQL索引是数据库管理系统中用于加速数据检索的关键组件。它们的工作原理类似于书籍的索引,允许数据库系统快速定位和访问所需的数据,而无需遍历整个表。MySQL支持多种类型的索引,包括普通索引、唯一性索引和主键...