背景
最近学习了Mysql的索引,索引对于Mysql的高效运行是非常重要的,正确的使用索引可以大大的提高MySql的检索速度。通过索引可以大大的提升查询的速度。不过也会带来一些问题。比如会降低更新表的速度(因为不但要把保存数据还要保存一下索引),占用磁盘空间等问题。
前期准备
创建一个一百万条数据的表
1.创建一个表,如果有测试的表也可以用(把主键id设置为自增)
2.如果给字段添加的值有中文 需要将字符集改为UTF-8的格式
3.保存存储过程,用来添加100w条数据(字段和数据可以自己修改)
delimiter KaTeX parse error: Expected 'EOF', got '#' at position 2: #̲ 定义结束符 drop pro…
4.调用存储过程来添加100w条数据
call addTestData();
执行的过程中会比较慢,大家可以使用select语句 查看创建了多少条数据了 select count(id) from test
实操过程
主键索引 primary
mysql提前给我们创建好了,不需要我们自己创建主键索引。
唯一索引 unique
对应语句
查询语句:
SELECT * FROM test where user_name ='姓名_19'
创建索引语句:
create unique index username ON test(user_name)
执行效果:
普通索引
对应语句
查询语句
SELECT * FROM test WHERE `password`='密码:55'
创建普通索引语句
create index password on test( password )
执行效果
全文索引 fulltext
对应语句
查询语句
SELECT * FROM test where text LIKE '%郝立琢'
创建全文索引语句
create fulltext index text on test(text);
创建全文索引后的查询语句
select * 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)
执行效果