mysql创建表与索引

Posted hello world

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql创建表与索引相关的知识,希望对你有一定的参考价值。

-- ----------------------------
-- 商品属性表
-- AUTO_INCREMENT=1为设置了自增长的字段设置起点,1为起点
-- ENGINE选择:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。
-- NOT NULL 设置字段不为空,DEFAULT NULL设置字段默认值
-- COMMENT注释
-- DEFAULT CHARSET=utf8为字段设置默认编码(如果表字段没有设置编码,那么默认就是这里指定的编码)
-- character set utf-8为某列字段设置编码
-- ----------------------------
DROP TABLE IF EXISTS cshop_attribute;
CREATE TABLE cshop_attribute (
  attr_id int(11) NOT NULL AUTO_INCREMENT COMMENT 属性id,
  attr_name varchar(100) NOT NULL COMMENT 属性名称,
  attr_value text NOT NULL COMMENT 属性值列,
  attr_show tinyint(1) NOT NULL COMMENT 是否显示。0为不显示,1为显示,
  attr_sort tinyint(1) NOT NULL COMMENT 排序,
  CONSTRAINT PRIMARY KEY (attr_id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT=商品属性表;
-- ----------------------------
-- 商品属性表索引
-- 索引语句格式:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...)
-- index_col_name:col_name [(length)] [ASC | DESC]
-- index_type:存储引擎MyISAM允许的索引类型BTREE,存储引擎InnoDB允许的索引类型BTREE,存储引擎MEMORY/HEAP允许的索引类型HASH,BTREE
-- 普通索引:创建索引时,不附加任何限制条件(唯一、非空等限制)。该类型的所有可以创建在任何数据类型的字段上。
-- UNIQUE唯一索引:创建索引时限制索引的值必须是唯一的,通过该类型的索引可以更快速的查询某条记录,唯一索引字段不可加长度
-- FULLTEXT全文索引:主要关联在数据类型为char、varchar、text的字段上,以便能够更加快速的查询数据量较大的字符串类型的字段,必须加上长度
-- 多列索引:是指在创建索引时,所关联的字段不是一个字段,而是多个字段。虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用。(此处意思大概是查询条件中必须包含第一个字段索引才会生效)
-- 更多详细介绍可参考mysql中文手册
-- ----------------------------
-- 删除索引
DROP INDEX index_attr_id ON cshop_attribute;
-- 创建索引
CREATE UNIQUE INDEX index_attr_id USING BTREE ON cshop_attribute (attr_id ASC);

 

以上是关于mysql创建表与索引的主要内容,如果未能解决你的问题,请参考以下文章

MySQL索引

Mysql索引基础

MySQL——索引视图事务,存储引擎MyLSAM和InnoDB(实战篇!)

Mysql添加索引及索引的优缺点

phpMyAdmin 表与 MySQL 视图

将表与熊猫中的索引列合并