详解MySQL三项实用开发知识
2009-04-02 11:18:19 来源:WEB开发网3. 只要有可能,就要尽量限定索引的长度,例如索引列为 char(100),在其前10个字符大部分都是唯一的,请设置索引的长度为10,使用短索引可以加快查询速度,并节省硬盘空间。
4. 索引的左前缀特性,联合索引实质上也是建立了多个的索引,那么是建立联合索引好还是分别建多个索引好呢?显然前者更好,利用左前缀特性,只要联合索引的最左的列被用到,那么索引都会被使用。
5. 当然,最后要说的是,不要过度使用索引,索引越多,插入的速度越慢,尤其到数据量庞大时,同时,大量的索引将耗费很多硬盘空间,造成不必要的浪费。
下面举几个列子来说明索引的使用:
1.联合索引的左前缀
先看索引结构:
代码:
mysql> show index from user;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| user | 0 | PRIMARY |1 | user_id | A | 2 | NULL | NULL || BTREE| |
| user | 1 | user |1 | username | A | NULL | NULL | NULL || BTREE| |
| user | 1 | user |2 | order | A | NULL | NULL | NULL || BTREE| |
| user | 1 | user |3 | email | A | NULL | NULL | NULL | YES | BTREE| |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
4 rows in set (0.00 sec)
更多精彩
赞助商链接