MySQL创建索引命令
xml游戏怎么运行MySQL索引类型
1. 普通索引
创建索引的⽅式
-- 直接新建索引
CREATE INDEX indexName ON mytable(username(length))
-- 修改表结构新建索引
ALTER mytable ADD INDEX [indexName] ON (username(length))
-- 创建表的时候建⽴索引
CREATE TABLE mytable(ID INT NOT NULL,username VARCHAR(16) NOT NULL,INDEX [indexName] (username(length)) )
mysql面试题索引-- 删除索引的语法
DROP INDEX [indexName] ON mytable;
如果是CHAR或者VARCHAR类型,length可以⼩于字段实际长度;如果是BLOB或TEXT类型,必须指定length。
2. 唯⼀索引
它与前⾯的普通索引类似,不同的就是:索引列的值必须唯⼀,但允许有空值。如果是组合索引,则列值的组合必须唯⼀。
-- 创建唯⼀索引
CREATE UNIQUE INDEX indexName ON mytable(username(length))
-- 修改表结构
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
-- 创建表的时候直接指定
CREATE TABLE mytable(ID INT NOT NULL,username VARCHAR(16) NOT NULL, UNIQUE [indexN
ame] (username(length)));
3. 主键索引(即主键)
特殊的唯⼀索引,不允许有空值。⼀般是在建表的时候同时创建主键索引。
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
PRIMARY KEY(ID)
);
4. 组合索引
单个索引项⾥包含多个字段。cssmargin是什么意思
ALTER TABLE mytable ADD INDEX name_city_age (username(10),city,age);
最左前缀原则:只从最左⾯的开始组合。⽐如上⾯就是建⽴了 username city , username age ,username city age 。并没有city age 这样的组合索引。
docker容器四种状态使⽤MySQL索引注意事项
1. 索引不会包含有NULL值的列
生活中linux的具体应用只要列中有包含NULL值都将不会被包含在索引⾥,复合索引中只要有⼀列含有NULL值,那么这⼀列对此复合索引都是⽆效的。
2. 使⽤短索引
对于串列进⾏索引,如果可能应该指定⼀个前缀长度。例如:如果有⼀个CHAR(255)的列,如果前10个或20个字符内,多数值是唯⼀的,那么就不要对整个列进⾏索引。短索引不仅可以提⾼查询数据⽽且可以节省磁盘空间和I/O操作。
3. 索引排序ebalance软件
MySQL查询只使⽤⼀个索引,因此如果where⼦句中已经使⽤了索引的话,那么order by中的列是不会使⽤索引的。因此数据库默认排序可以符合要求的情况下不要使⽤排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
4. like语句操作
⼀般情况下不⿎励使⽤like操作,如果⾮使⽤不可,请尽量使⽤like "aaa%"⽽⾮like "%aaaa%",因为前者是可以使⽤索引的,⽽后者不会。
5. 尽量少使⽤NOT IN和<>操作.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论