专注于WEB技术的IT博客

mysql的常规索引index

时间:2012-12-06分类: Mysql浏览:4036
分享到:

   常规索引技术是关系数据查询中最重要的技术,如果要提升数据库的性能,索引优化是首先应该考虑的,因为它能使用我们的数据库得到最大性能方面的提升。如果没有索引的数据表,就没有排序的数据集合,要查询数据就需要进行全表扫描。有索引的表是一个在索引列上排序了的数据表,可通过索引快速定位记录。


   MyISAM数据表中数据保存在数据文件中,索引保存在索引文件(.MYI)中。而InnoDB数据表把数据与索引放在同一个文件中。


   常规索引的缺点:
   1)减慢在索引数据列上的插入、删除和修改操作。加了索引之后,insert、delete和update操作都要更新索引,会造成一些附加操作

   2)多占磁盘空间。索引是保存在物理文件(.MYI)里的,所以如果在一张大表上创建索引,会造成索引文件也比较大

   
  mysql语句中适用常规索引的地方

   
   在WHEERE(<,<=,=,>=,>,between,in,like)和join(on)子句,关联检索中的FROM子句,ORDER BY或GROUP BY子句中出现过的数据列。

   

   使用索引要注意什么?    

索引是会消耗系统资源的,要适可而止。


   

   创建常规索引的方法
   

   原表:

CREATE TABLE `wb_blog` (     
  `id` smallint(8) unsigned NOT NULL,     
  `catid` smallint(5) unsigned NOT NULL DEFAULT '0',     
  `title` varchar(80) NOT NULL DEFAULT '',     
  `content` text NOT NULL,     
  PRIMARY KEY (`id`),     
 )

   

   1、创建常规索引可以使用关键字KEY或INDEX随表一同创建,KEY通常是INDEX同义词

mysql> CREATE TABLE `wb_blog` (     
    ->   `id` smallint(8) unsigned NOT NULL,     
    ->   `catid` smallint(5) unsigned NOT NULL DEFAULT '0',     
    ->   `title` varchar(80) NOT NULL DEFAULT '',     
    ->   `content` text NOT NULL,     
    ->   PRIMARY KEY (`id`),     
    ->   KEY `cat` (`catid`) #以字段catid为关键字定义名为cat的索引    
    -> );     
Query OK, 0 rows affected (0.27 sec)

   2、在创建表之后使用CREATE INDEX 或ALTER TABLE 命令来创建

   

mysql> create index  cat on wb_blog(catid);     
Query OK, 0 rows affected (0.39 sec)

   删除常规索引的方法
   
 

mysql> DROP INDEX cat ON wb_blog;     
Query OK, 0 rows affected (0.34 sec)

     

     

猜你喜欢
从一个错误语句看Mysql 数据库命名规范
mysql的唯一索引UNIQUE
mysql 数据表中主键(primary key)的操作
将数据库中文乱码解决方法进行到底(2)
将数据库中文乱码解决方法进行到底
标签 : mysql
除非注明,本文首发网志博客,欢迎转载!转载请注明本文地址:http://w3note.com/web/57.html,谢谢。
  • 评论
  • 赞助本站