深入MySQL数据库的索引
HAR(60), INDEX (name(10),address(20)) )
mysql> SHOW INDEX FROM tbl_name; +----------+------------+----------+--------------+-------------+- | Table | Non_unique | Key_name | Seq_in_index | Column_name | +----------+------------+----------+--------------+-------------+- | tbl_name | 1 | name | 1 | name | | tbl_name | 1 | name | 2 | address | +----------+------------+----------+--------------+-------------+- 在某些情况下,可能会发现必须对列的前缀进行索引。例如,索引行的长度有一个最大上限,因此,如果索引列的长度超过了这个上限,那么就可能需要利用前缀进行索引。在 MyISAM 表索引中,对 BLOB 或 TEXT 列也需要前缀索引。 对一个列的前缀进行索引限制了以后对该列的更改;不能在不删除该索引并使用较短前缀的情况下,将该列缩短为一个长度小于索引所用前缀的长度的列。 总结 本节对索引的类型,已经如何创建索引做了介绍,其中涉及三个比较重要的SQL语句——ALTER TABLE、CREATE/DROP INDEX和CREATE TABLE,注意它们的用法。 索引最重要的功能是,通过使用索引加速表的检索,有关这方面的知识,将在第十章数据库优化中介绍。 思考题 1、建立一个如下所述的表: data:FLOAT列,使用随机函数填充数据 birth:DATETIME列,填充当前时间。 然后,请录入几条数据。最后计算data列的平均值、总和、极值,并且按照data列降序排序检索值。 2、分别使用标准SQL模式和扩展正规表达式模式匹配,匹配上面创建的表,假设你创建表的当前日期为2001-01-01,用模式匹配检索出birth列包含该日期的值。(实际上,上面的表中记录都是同一日期录入的,因此实际将返回全部记录。) 3、为前几章使用的数据表创建索引: student:为id段创建一个PRIMARY索引,为english、chinese和history创建一个多列索引。 pet:为name和owner段创建一个多类索引。 4、删除为pet表创建的索引。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |