本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主要从数据结...
分类:
数据库 时间:
2015-04-22 18:15:49
阅读次数:
206
1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为...
分类:
数据库 时间:
2015-04-22 11:26:48
阅读次数:
145
下面分别创建三张表,并分别插入1W条简单的数据用来测试,详情如下:[1] test_a 有主键但无索引CREATE TABLE `test_a` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) NOT NUL...
分类:
数据库 时间:
2015-04-22 09:26:39
阅读次数:
172
MySQL索引分为普通索引、唯一性索引、全文索引、单列索引、多列索引等等。这里将为大家介绍着几种索引各自的用途。一、 MySQL: 索引以B树格式保存 Memory存储引擎可以选择Hash或BTree索引,Hash索引只能用于=或的等式比较。 1、普通索引:create index on T...
分类:
数据库 时间:
2015-04-20 16:16:41
阅读次数:
170
B+树在数据库中的应用{为什么使用B+树?言简意赅,就是因为:1.文件很大,不可能全部存储在内存中,故要存储到磁盘上2.索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数(为什么使用B-/+Tree,还跟磁盘存取原理有关。)3.局部性原理与磁盘预读,预读的长度一般为页(page)的整倍数,(在许...
分类:
数据库 时间:
2015-04-19 22:40:44
阅读次数:
309
由where 1 =1 引发的思考最近工作上被说了说代码中不能用 where 1=1,当时觉得是应该可以用的,但是找不到什么理据,而且mysql 语句优化这方面确实很薄弱感觉自己mysql方面是知识还是不够哇得好好研究研究还有发现 很多知识点 光看的话根本记不住,也不深刻。还是得亲手实践下so ~~...
分类:
数据库 时间:
2015-04-19 01:10:19
阅读次数:
248
mysql中索引的数据结构:1、基本上所有的索引都是B-Tree结构,一部分还有HASH索引。2、索引分类(功能)主键索引:一张表中最多有一个主键索引,而且该字段值不能为NULL,不能重复。唯一索引:一张表中可以有多个唯一索引,而且字段可以为NULL,但是不能有重复值。普通索引:一张表中可以有多个普...
分类:
数据库 时间:
2015-04-18 11:32:44
阅读次数:
164
★mysql索引altertable创建普通索引、unique索引或primarykey索引altertabletable_nameaddindexindex_name(column_list)altertabletable_nameadduniqueindex_name(column_list)altertabletable_nameaddprimarykeyindex_name(column_list)createindexcreateindexindex_nameontab..
分类:
数据库 时间:
2015-04-17 11:49:09
阅读次数:
203
tips:看了MySQL索引背后的数据结构及算法原理后,里边有说:"数据库系统的设计者巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入。为了达到这个目的,在实际实现B-Tree还需要使用如下技巧:每次新建节点时,直接申请一个页的空间,这样就保证一个节...
分类:
其他好文 时间:
2015-04-13 00:22:50
阅读次数:
207