美文网首页
存储引擎和索引

存储引擎和索引

作者: lk_erzanml | 来源:发表于2022-08-29 12:16 被阅读0次

存储引擎:

Archive:用于数据存档归档;(mongodb可以代替)
压缩率高;插入快,查询慢;
Memory引擎:内存(redis代替)
myisam:
不支持外键事物;只支持表锁;节省资源,消耗少,适合简单业务;
innodb:
支持事物;支持外键;支持行锁;并发写,事物,更大资源;

索引

优点

提高查询效率

缺点

降低更新表的速度

分类

按功能:普通索引,唯一索引,主键索引,全文索引
按物理实现方式:聚簇和非聚簇
按照作用字段个数:单列索引和联合索引

sql8.0支持降序索引

隐藏索引,相当于伪删除,等确认无误之后再彻底删除这个索引

适合创建索引的情况

  1. 唯一值的,适合创建唯一索引;
  2. 频繁被where作为条件的;
  3. 正常group by 或者order by的适合创建单列索引或者组合索引;
  4. 散列度高的适合创建索引
  5. 使用频率最高的放在联合索引的最左边

不适合创建索引的情况

  1. where等条件使用不到的
  2. 数据量小
  3. 散列度低的
  4. 不建议用无序的值建立索引(uuid)

生成随机数

DELIMITER $
CREATE FUNCTION rand_string(n INT)
    RETURNS VARCHAR(255)
BEGIN 
    DECLARE chars_str VARCHAR(100) DEFAULT 
'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
    DECLARE return_str VARCHAR(255) DEFAULT '';
    DECLARE i int default 0;
    WHILE i<n DO 
        SET return_str=CONCAT(return_str,SUBSTRING(chars_str,FLOOR(1+RAND()*52),1));
        SET i=i+1;
    END WHILE;
    RETURN return_str;
END $
DELIMITER;

set global log_bin_trust_function_creators=1;

select rand_string(10);
delimiter $
create function rand_num(from_num int,to_num int) returns int(11)
BEGIN
declare i int default 0;
set i=floor(from_num+rand()*(to_num-from_num+1));
return i;
end $ 
delimiter;

select rand_num(10,100);
#插入大量数据
delimiter $
create procedure insert_stu1(start int,max_num int)
BEGIN
declare i int default 0;
set autocommit =0;
REPEAT
set i=i+1;
insert into student(stuno,name,age,classid)VALUES((start+i),rand_string(6),rand_num(10,100),rand_num(10,1000));
until i=max_num
end repeat;
commit;
end $
delimiter;

call insert_stu1(100001,4000000);
image.png
image.png
image.png
image.png
image.png
image.png

相关文章

  • 轻松优化MySQL-之索引优化2 附赠送优化口诀

    索引的分类 索引是在存储引擎中实现的,也就是说不同的存储引擎,会使用不同的索引。MyISAM和InnoDB存储引擎...

  • 索引的分类

    注意: 索引是在存储引擎中实现的,也就是说不同的存储引擎,会使用不同的索引。MyISAM和InnoDB存储引擎:只...

  • 索引原理篇

    1.索引存储结构: 索引是在存储引擎中实现的,也就是说不同的存储引擎,会使用不同的索引 MyISAM和InnoD...

  • 存储引擎和索引

    存储引擎: Archive:用于数据存档归档;(mongodb可以代替)压缩率高;插入快,查询慢;Memory引擎...

  • 第五章 索引与算法(上)

    5.1 InnoDB存储引擎索引概述InnoDB存储引擎支持以下几种常见索引: B+树索引 全文索引 哈希索引 I...

  • 【学习】MySQL数据库

    存储引擎 存储引擎 索引 InnoDB索引原理索引 锁 锁不同Select加锁分析 事务 事务事务隔离级别XAMV...

  • MySQL 索引

    索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。 B+Tree 索引 ...

  • MySQL索引的数据结构

    在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和Inn...

  • MySQL索引实现

    在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和Inn...

  • 索引问题

    1.索引存储分类索引是在MySQL的存储引擎层实现的,每个存储引擎的索引不一定相同。MySQL提供以下4种索引: ...

网友评论

      本文标题:存储引擎和索引

      本文链接:https://www.haomeiwen.com/subject/ylzqnrtx.html