转自: http://blogold.chinaunix.net/u3/93470/showart_2001536.html by xjc2694 - MySQL - 2011-12-23 01:33:55 阅读(709) 回复(0)
1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。 SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3 此查询结果应该为...
Calculate index sizes mysql> SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024*1024), 2), ' GB') AS 'Total Index Size' FROM information_schema.TABLES WHERE table_schema LIKE 'database'; +------------------+ | Total Index Size | +------------------+ | 1.70 GB | +------------------+ 1 row in set (1.60 sec) To calculate the total size of the data in the database mysql> SELECT CONCAT(ROUND(SUM...
mysql索引 本文介绍了数据库索引,及其优、缺点。针对mysql索引的特点、应用进行了详细的描述。分析了如何避免mysql无法使用,如何使用EXPLAIN分析查询语句,如何优化mysql索引的应用。本文摘自《mysql 5权威指南》(3rd)的8.9节。(2007.07.05最后更新) 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。 注:[1]索引不是万能的!索引可以加快数据检索操作...
今天用到了mysql索引,贴点资料 索引用来快速地寻找那些具有特定值的记录,所有mysql索引都以B-树的形式保存。如果没有索引,执行查询时mysql必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,mysql无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。...
如果你想了解mysql索引查询优化,你首先应该对mysql数据组织结构、B-Tree索引、***索引,次要索引有一定的了解,才能够更好地理解mysql查询优化行为。这里主要探讨mysql InnoDB的***索引。
InnoDB数据存储结构1.mysql将所有数据都逻辑地存放在ib_data1文件中,我们称之为表空间。当然,你也可以一个表对应一个物理文件,将innodb_file_per_table设置成ON即可。
2.表空间又划为成段,有数据段(leaf node segment),索...
create table t_a(id int id1 varchar(30), idname varchar(30), id2 varchar(30), id2name varchar(30)) 有两个查询 select * from t_a where id1=? and idname=?; select * from t_a where id1=? and idname=? and id2=? and id2name=?; 这时我建两个索引 create idx_t_a_01 on t_a(id1,idna...
希望大家指点 表结构如下所示: mysql> show create table book\G *************************** 1. row *************************** Table: book Create Table: CREATE TABLE `book` ( `book_id` int(11) NOT NULL AUTO_INCREMENT, `status` int(11) NOT NULL, `level` int(11) NOT NULL, `update_time` datetime DEFAULT NULL, ...... snip ....... PRIMARY KEY (`book_id`), KEY `S_L_U` (`status`,`level`,`updat...
[ 本帖最后由 chinafenghao 于 2013-02-25 10:56 编辑 ]
一、什么是索引?
索引用来快速地寻找那些具有特定值的记录,所有mysql索引都以B-树的形式保存。如果没有索引,执行查询时mysql必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,mysql无需扫描任何记录即可迅速得到目标...