MySQL事务和索引详细基础语句

2020-05-04  本文已影响0人  司徒新新

事务

-- 事务  模拟A向B转账   必须A扣完  B加完 两部都完成了才算完成  否则失败  
SET autocommit = 0; -- 关闭事务

START TRANSACTION -- 开启一个事务 (一组事务)

UPDATE account SET money = money - 500 WHERE `name` = 'A'  -- A减500

UPDATE account SET money = money + 500 WHERE `name` = 'B'  -- B减500

COMMIT;     -- 提交事务,事务就被持久化了

ROLLBACK; -- 回滚

SET autocommit = 1; -- 恢复默认值

索引

-- 索引
SHOW INDEX FROM student; -- 显示全部索引信息

ALTER TABLE school.student ADD FULLTEXT INDEX `email`(`email`); -- 增加一个全文索引(索引名) 列名

-- EXPLAIN 分析SQL执行的情况
EXPLAIN SELECT * FROM student; -- 非全文索引

SELECT * FROM student WHERE MATCH(email) AGAINST('com');

-- 测试
-- id _ 表名 _ 字段名
-- CREATE INDEX 索引名 ON 表(字段)
CREATE INDEX id_student_name ON student(`name`); -- 给表的name字段 添加索引
SELECT * FROM student WHERE `name` = 'xinxin';  -- 正常查询
EXPLAIN SELECT * FROM student WHERE `name` = 'xinxin';  -- 根据索引查询

索引在小的数据量的时候区别不大,但是在数据量大的时候,区别十分明显!!!


索引需要注意的(原则)

建议查看索引的数据结构.

上一篇下一篇

猜你喜欢

热点阅读