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

存储引擎和索引

作者: 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

    相关文章

      网友评论

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

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