老莫的笔记本  
  
查看: 1168|回复: 0

MYSQL 是 索引 和 mongodb 索引差不多

[复制链接]

662

主题

878

帖子

5133

积分

超级版主

Rank: 8Rank: 8

积分
5133
发表于 2018-7-27 23:30:19 | 显示全部楼层 |阅读模式
单列索引,组合索引 就和 MONGODB 差不多的意思: 先创建一个索引 意思意思:
  1. CREATE INDEX indexName ON mytable(username(length));
复制代码
如果是CHAR,VARCHAR 类型, length 可以小于字段实际长度; 如果 BLOB 和 TEXT 类型,必须指定 length

修改表结构添加索引
  1. ALTER table tableName ADD INDEX indexName(columnName)
复制代码

创建表的时候直接指定索引
  1. CREATE TABLE mytable(  
  2. ID INT NOT NULL,   
  3. username VARCHAR(16) NOT NULL,  
  4. INDEX [indexName] (username(length))  
  5. );  
复制代码
删除索引
  1. DROP INDEX [indexName] ON mytable;
复制代码


唯一索引===  上面的都是普通索引
唯一索引的列的值必须唯一,但是允许有空值。如果是组合索引,则列值的组合必须唯一。
唯一索引创建方式:
  1. CREATE UNIQUE INDEX indexName ON mytable(username(length))
复制代码
、修改表结构:
  1. ALTER table mytable ADD UNIQUE [indexName] (username(length))
复制代码

创建表的时候直接指定
  1. CREATE TABLE mytable(  
  2. ID INT NOT NULL,   
  3. username VARCHAR(16) NOT NULL,  
  4. UNIQUE [indexName] (username(length))  
  5. );  
复制代码


使用ALTER 命令添加和删除索引“
  1. 有四种方式来添加数据表的索引:
  2. ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
  3. ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
  4. ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
  5. ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。
复制代码
以下实例为在表中添加索引。
  1. ALTER TABLE testalter_tbl ADD INDEX (c);
复制代码

还可以在ALTER 命令中使用DROP 子句来删除索引。
  1. ALTER TABLE testalter_tbl DROP INDEX c;
复制代码


使用ALTER 命令添加或者删除主键: 【确保主键值不为空】
  1. mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
  2. mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
复制代码
也可以ALTER 删除主键:
  1. ALTER TABLE testalter_tbl DROP PRIMARY KEY;
复制代码
删除主键时 只需指定PRMARY, 但是在删除索引时,你必须知道索引名

显示索引信息
  1. SHOW INDEX FROM table_name; \G
复制代码





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表