福州网站建设方案,四大门户网站流量对比,河北省建设机械协会网站,成都网站排名生客seo怎么样什么是索引#xff1f;
百度百科#xff1a;在关系数据库中#xff0c;索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构#xff0c;它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于…什么是索引
百度百科在关系数据库中索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录可以根据目录中的页码快速找到所需的内容。
Mysql常见索引
主键索引、唯一索引、普通索引、全文索引、组合索引
Mysql各种索引区别
普通索引(INDEX)最基本的索引没有任何限制 唯一索引(UNIQUE)与普通索引类似不同的就是索引列的值必须唯一但允许有空值。 主键索引(PRIMARY)它 是一种特殊的唯一索引不允许有空值。 全文索引(FULLTEXT )仅可用于 MyISAM 表 用于在一篇文章中检索文本信息的, 针对较大的数据生成全文索引很耗时好空间。 组合索引为了更多的提高mysql效率可建立组合索引遵循”最左前缀“原则。
操作实例
准备工作
1.创建一个100W数据表(把主键id设置为自增) 2.如果给字段添加的值有中文 需要将字符集改为UTF-8的格式 3.保存存储过程用来添加100w条数据字段和数据可以自己修改
delimiter $$ # 定义结束符
drop procedure if exists addTestData; # 存储过程名叫addTestData
create procedure addTestData()
begin
declare number int;
set number 1;
while number 1000000 #插入N条数据
do
insert into test(id,user_name,password,text) #需要添加值得字段
values(null,concat(姓名_,number),concat(密码,number),concat(账号,number,密码,number)); # 对应字段的值
set number number 1;
end
while;
end $$4.调用存储过程来添加100w条数据 call addTestData();
执行的过程中会比较慢大家可以使用select语句 查看创建了多少条数据了 select count(id) from test
创建索引
主键索引 primary
mysql提前给我们创建好了不需要我们自己创建主键索引。
唯一索引 unique
sql语句SELECT * FROM test where user_name ‘姓名_1’ 创建唯一索引create unique index username ON test(user_name);
普通索引 noraml
sql语句SELECT * FROM test WHERE password‘密码55’ 创建普通索引create index password on test( password );
全文索引 fulltext
执行全文索引的SQL语句 SELECT * FROM test WHERE MATCH(text) AGAINST(‘账号1’ IN BOOLEAN MODE); match()函数中的值要和全文索引添加的列保持一致。 against()函数中的值要填写要搜索的关键字后面可以添加搜索的条件语句 加索引之前 SELECT * FROM test where text LIKE ‘%阿仇’ 创建全文索引create fulltext index text on test(text); 加索引之后 select id from test where match(text) against(‘阿仇’);
组合索引
示例SELECT * FROM test where user_name“姓名_10” AND password“密码10” 创建组合索引create index (索引名)username、password on (表名)test ((添加索引的字段)user_name, password)