Mysql:事务、索引(了解)

61 阅读1分钟

事务

将一组SQL放在一个批次中去执行

原则

原子性:一起成功或者一起失败

一致性:操作前与操作后的状态一致

持久性:事务没有提交就恢复到原状

事务已经提交,被持久化到数据库中

隔离型:多个用户操作事务相互不影响

-- 事务流程 
-- 关闭自动提交 
SET autocommit = 0;
-- 事务开启 
START TRANSACTION

-- START TRANSACTION 之后的sql 被标记为同一个事务中 
INSERT INTO ...
UPDATE ...

-- 提交
COMMIT

-- 回滚
ROLLBACK

-- 事务结束 
SET autocommit = 1 -- 开启自动提交

索引

提高查询效率,本质是数据结构

分类

  • 主键索引

    • 唯一
  • 唯一索引

    • 避免重复的列出现,可重复
  • 常规索引

    • 默认的
  • 全文索引

    • 跟数据库引擎有关
    -- 显示所有索引信息
    show index
    
    -- 增加全文索引
    alter table school.student add fulltext index `索引名` (`studentname`);
    
    -- 创建索引: create index 索引名称 on 表名(字段名)
    create index id_app_user_name on app_user(`name`);
    

索引原则

  • 索引不是越多越好
  • 不要对经常变动数据加索引
  • 小数据量的表不需要加索引
  • 索引一般加在常用来查询的字段上

索引的数据结构

Hash

Btree