正在回答 回答被采纳积分+1
2回答
慕村0084371
2018-12-09 13:34:51
建议参考
可以直接创建索引,基本的语法格式如下:
CREATE TABLE 表名(字段名 数据类型 [完整性约束条件],[UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY
[索引名](字段名1 [(长度)] [ASC | DESC])
);
UNIQUE:可选。表示索引为唯一性索引。
FULLTEXT;可选。表示索引为全文索引。
SPATIAL:可选。表示索引为空间索引。
INDEX和KEY:用于指定字段为索引,两者选择其中之一就可以了,作用是一样的。
索引名:可选。给创建的索引取一个新名称。
字段名1:指定索引对应的字段的名称,该字段必须是前面定义好的字段。
长度:可选。指索引的长度,必须是字符串类型才可以使用。
ASC:可选。表示升序排列。
DESC:可选。表示降序排列
2、
最左边规则:这种情况发生在多个有索引的域上,mysql从索引列表的最左边开始,按顺序使用他们。
alter table customer add initial varchar(5);alter table customer add index(surname,initial,first_name);
update customer set initial=‘x‘ where id=1;
update customer set initial=‘c‘ where id=2;
update customer set initial=‘v‘ where id=3;
update customer set initial=‘b‘ where id=4;
update customer set initial=‘n‘ where id=20;
update customer set initial=‘m‘ where id=21;
如果在查询中使用了这三个域,那就最大限度的利用了索引:
select * from customer where surname=‘clegg‘ and initial=‘x‘ and first_name=‘yvonne‘;或者是利用索引的大部分:
select * from customer where surname=‘clegg‘ and initial=‘x‘;
或仅仅是surname:
select * from customer where surname=‘clegg‘;如果打破最左边规则,下面的例子就不会用到索引:
select * from customer where initial=‘x‘ and first_name=‘yvonne‘;select * from customer where initial=‘x‘ ;
select * from customer where first_name=‘yvonne‘;
select * from customer where surname=‘clegg‘ and first_name=‘yvonne‘;
3、至于联合索引的删除修改操作,按照索引的操作方式即可, 建议参考:https://www.cnblogs.com/yeyublog/p/5898588.html
PHP小白零基础入门
- 参与学习 人
- 提交作业 626 份
- 解答问题 4930 个
想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星