青铜到王者,快速提升你 MySQL 数据库的段位!
3. 创建索引的过程中,学会查看执行计划。内功心法:先看 type 值,再看 key,再看 rows,最后看 extra; mysql> use test; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> explain select * from sbtest; +----+-------------+--------+------+---------------+------+---------+------+-------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+------+---------------+------+---------+------+-------+-------+ | 1 | SIMPLE | sbtest | ALL | NULL | NULL | NULL | NULL | 98712 | NULL | +----+-------------+--------+------+---------------+------+---------+------+-------+----- 4. 了解创建索引的好处 a. 提高数据检索效率 b. 提高聚合函数效率 c. 提高排序效率 d. 个别时候可以避免回表 e. 减少多表关联时扫描行数 f. 主键、唯一索引可以作为约束 ——对事务的学习 先要知道事务的四大特性(ACID): a. 原子性(Atomicity) 事务的原子性是指事务中包含的所有操作要么都做,要么都不做,保证数据库是一致的 b. 一致性(Consistency) 一致性是指数据库在事务操作前和事务处理后,其中的数据必须都满足业务规则约束. c. 隔离性(Isolation) 隔离性是数据库允许多个并发事务同时对数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致. d. 持久性(Durability) 事务处理结束后,对数据的修改就是永久的 熟悉 mysql 数据库四种事务隔离级别: 1. read uncommitted(RU)读未提交: 一个事务中,可以读取到其他事务未提交的变更 2. read committed(RC)读已提交: 一个事务中,可以读取到其他事务已经提交的变更 3. repetable read,(RR)可重复读: 一个事务中,直到事务结束前,都可以反复读取到事务刚开始看到的数据,不会发生变化 4. serializable(串行读): 即便每次读都需要获得表级共享锁,每次写都加表级排它锁,两个会话间读写会相互阻塞。 个人建议:对于交易类系统的网站,大家尽量使用事务级别比较高的RR;对于一些门户类网站大家使用RC就可以了。 Innodb 的锁,默认三种锁算法: record; Gap lock; next-key lock 默认锁算法是 next-key lock 间隙锁保证不会出现幻读现象。 数据库字符集 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |