在mysql查询中混淆

时间:2014-05-23 20:49:50

标签: mysql

createTable('messages',
     'id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
      auth VARCHAR(16), 
      recip VARCHAR(16),
      pm CHAR(1),
      time INT UNSIGNED, 
      message VARCHAR(4096), 
      INDEX(auth(6)), 
      INDEX(recip(6))');

这是用于创建表的mysql命令。我只是想知道,命令的最后两行是什么," INDEX(auth(6))"和" INDEX(recip(6))"?我习惯使用phpMyAdmin并习惯了更多的图形界面。如何将此命令与图形界面过程相关联?

2 个答案:

答案 0 :(得分:0)

在mysql终端或PHP我的管理员这就是你可以创建表的方法

create table messages(
     id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
      auth VARCHAR(16), 
      recip VARCHAR(16),
      pm CHAR(1),
      time INT UNSIGNED, 
      message VARCHAR(250), 
      INDEX (auth), 
      INDEX (recip)
);

另请注意,message VARCHAR(4096),没有意义,因为它没有任何用途。

What is the MySQL VARCHAR max size?

最后两个命令是在列authrecip上创建索引

以下是http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

的索引

答案 1 :(得分:0)

包含

INDEX(auth(6))INDEX(recip(6))以在表上创建索引。创建索引,以便查询(如SELECT * FROM messages WHERE auth=<xyz>)运行得更快。

MySQL文档包含有关creating indexes以及how they are used by MySQL的信息。

关于索引如何在this question on SO中工作,有一个非常详细的解释。