zoukankan      html  css  js  c++  java
  • 【mysql-索引+存储过程+函数+触发器-更新。。。】

    BaseOn ===》MySQL5.6

    一:索引

    1:创建索引:

      create index nameIndex on seckill(name) ;

    2:查看索引:

    show index from seckill G;

      

    3:删除索引:删除表中对应的列属性的时候,该属性对应的索引也会删除。如果组成的索引列中有字段被删除,该索引也会被删除。

     drop index nameIndex on seckill;

    二:存储过程

    存储过程案例:

    -- 秒杀执行存储过程
    DELETE $$ -- console的结束符号由;转换成 $$
    -- in输入参数;out:输出参数
    -- ROW_COUNT():返回上条dml影响的条数: 小于0:sql语句错误/未执行修改sql操作
    -- 存储过程执行秒杀过程
    delimiter $$
    CREATE PROCEDURE kill.execute_seckill
    (in v_seckill_id BIGINT, in v_phone BIGINT, in v_kill_time timestamp, out r_result int)
    BEGIN
    DECLARE insert_count INT;
    SET insert_count = 0;
    START TRANSACTION;
    INSERT IGNORE into success_killed (seckill_id, user_phone,create_time)
    values (v_seckill_id,v_phone,v_kill_time);
    select ROW_COUNT() into insert_count;
    if(insert_count = 0) THEN
    ROLLBACK;
    SET r_result = -1;
    ELSEIF (insert_count < 0) THEN
    ROLLBACK;
    set r_result = -2;
    ELSE
    update seckill set number = number - 1
    where seckill_id = v_seckill_id
    and end_time > v_kill_time
    and start_time < v_kill_time
    and number > 0;
    SELECT ROW_COUNT() into insert_count;
    IF (insert_count = 0) THEN
    ROLLBACK;
    set r_result = 0;
    ELSEIF (insert_count < 0) THEN
    ROLLBACK;
    set r_result = -2;
    ELSE
    COMMIT;
    SET r_result = 1;
    END IF;
    END IF;
    END;
    $$
    delimiter ; -- console的结束符号由$$转换成;
    -- 存储过程定义结束
    -- 删除存储过程
    drop procedure execute_seckill


    set @r_result = -3; -- 在console中定义变量需要使用@
    -- console 中执行存储过程
    call execute_seckill(1001, 15665662547,NOW(),@r_result);

    -- 获取结果mysql语法
    select @r_result;
    show CREATE PROCEDURE execute_seckill -- 查询存储过程

    -- 存储过程
    -- 1: 存储过程的优化 : 事务行级锁持有时间
    -- 2;不要过分依赖存储过程
    -- 3;简单的逻辑可以应用存储过程
    -- 4:QPS: 同一个秒杀的达到6k


  • 相关阅读:
    c# 调用DeepAI
    c#
    c# Polygon 画多边形,
    WPF BitmapSource /BitmapImage 获取像素点颜色
    前端面试题汇总
    element 动态合并表格
    JS的乘、除、加、减法结果会有误差,在两个浮点数相乘的时候会比较明显
    shell中针对数字、filename字符串等的判断参数的总结
    Android TV : 电视输入框架(TIF)剖析
    ubuntu更新系统函数手册
  • 原文地址:https://www.cnblogs.com/yangjian-java/p/6904298.html
Copyright © 2011-2022 走看看