phpbb中有这么一个表格# Table: 'phpbb_search_wordlist'
CREATE TABLE phpbb_search_wordlist (
word_id mediumint(8) UNSIGNED NOT NULL auto_increment,
word_text varchar(255) DEFAULT '' NOT NULL,
word_common tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
word_count mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
PRIMARY KEY (word_id),
UNIQUE wrd_txt (word_text),
KEY wrd_cnt (word_count)
) CHARACTER SET `utf8` COLLATE `utf8_bin`;我想知道UNIQUE 及 KEY的作用,有什么好处。在google和百度上搜索了,但不是很明白。

解决方案 »

  1.   

    1、unique
    保证这个字段的纪录只能唯一
    2、KEY
    就是标准数据库里的候选建。
      

  2.   

    谢谢楼上unique 的意思我算是明白了。使用 Key 对数据查询的速度是否有优化作用?
      

  3.   

    where word_count=..
    这样就可以用到。具体的用explain select ...察看结果。
      

  4.   

    unique   当前列中的所有值唯一。key 提高查询速度。
      

  5.   

    1、使用UNIQUE关键字会对这个数据列创建一个Unique索引,有两个好处:一是简化了MySQL对这个索引的管理工作,这个索引也因此变得更有效率;二是MySQL会再有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个现有记录的这个字段里出现过了,如果是,MySQL将拒绝插入那条新记录;
       主索引(PRIMARY)与唯一索引(Unique索引)的唯一区别是,前者在定义时使用的关键字是PRIMARY而不是UNIQUE2、关键字KEY或INDEX用于定义普通索引,普通索引的唯一任务是加快对数据的访问速度。应该只为那些最经常出现在查询条件(WHERE column=...)或排序条件(ORDER BY column)中的数据列创建索引。索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着这对数据表里所有记录的引用指针。MySQL把同一个数据表里的索引总数限制为16个。MySQL还允许为多个字段的组合创建索引,这种索引对于涉及多个字段的查询/排序操作--如WHERE country='Chna' AND city='BeiJing'--特别有帮助。//Quote and Pack up From:<<MySQL权威指南(第三版)>>