mysql 1.42_MySQL索引(一)

 2023-09-10 阅读 14 评论 0

摘要:数据库开发中索引的使用占了很重要的位置,好的索引会使数据库的读写效率加倍,烂的索引则会拖累整个系统甚至引发灾难。索引分三类:index ----普通的索引,数据可以重复unique ----唯一索引,唯一索引,要求所有记录都唯一primary key ----主键索引,也就是在

数据库开发中索引的使用占了很重要的位置,好的索引会使数据库的读写效率加倍,烂的索引则会拖累整个系统甚至引发灾难。

索引分三类:

index ----普通的索引,数据可以重复

unique ----唯一索引,唯一索引,要求所有记录都唯一

primary key ----主键索引,也就是在唯一索引的基础上相应的列必须为主键

mysql组合索引?一般的创建索引的语句如下:

ALTER TABLE tb_name ADD INDEX index_name (column_list)

ALTER TABLE tb_name ADD UNIQUE index_name (column_list)

ALTER TABLE tb_name ADD PRIMARY KEY index_name (column_list)             MySQL 中会对 ,>=,BETWEEN,IN 以及不以% _ 开头的like 语句使用索引。

为证实like处理方法以下为一个简单的测试:

create table tb_test(fval varchar(50));

MySQL索引数据结构,先不添加索引,随机插入100W 条记录,并测试like 的查询速度。

CREATE DEFINER=`root`@`localhost` PROCEDURE `P_teset`()

BEGIN

DECLARE v_val VARCHAR(20);

DECLARE v_str VARCHAR(20);

DECLARE v_i INT ;

mysql索引失效。DECLARE v_j INT;

SET v_str ='abcdefghijklmnopqrstuvwxyz';

SET v_i=0;

SET v_j=0;

WHILE v_i<1000000 DO

SET v_val ='';

MySQL索引原理。WHILE v_j< 13 DO

SET v_val= CONCAT(v_val,SUBSTRING(v_str,1,FLOOR(1+RAND()*26)));

SET v_j=v_j+1;

END WHILE;

SET v_j=0;

INSERT INTO tb_test(fval)

mysql如何创建索引、VALUES(v_val);

SET v_i =v_i+1;

END WHILE;

END$

DELIMITER ;         使用前后% 测试like 查询速度:

SELECT *

Mysql索引结构。FROM tb_test

WHERE fval LIKE '%ab';70231条 用时0.531s

SELECT *

FROM tb_test

WHERE fval LIKE 'ab%'961406条用时1.422s

下面加入索引:

mysql索引使用,ALTER TABLE tb_test ADD INDEX my_index(fval);

再次测试like 的查询速度:

SELECT *

FROM tb_test

WHERE fval LIKE '%ab';70231条 用时1.094s

SELECT *

MySQL索引,FROM tb_test

WHERE fval LIKE 'ab%'961406条用时1.485s

表为MyISAM格式。 可以看到加了索引后查询的效率并未得到提升。再使用 explain 关键字查看 like 'ab%' 的运行情况:

EXPLAIN

SELECT *

FROM tb_test IGNORE INDEX(my_index)

mysql查看索引、WHERE fval LIKE '%ab';

0_13286981090XqF.gif

EXPLAIN SELECT *

FROM tb_test

WHERE fval LIKE '%ab';

0_132869812513BK.gif

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/41062.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息