mysql
鲁拉里
hhh
展开
-
mysql学习笔记一
1. sql执行流程 2. 创建表时的存储引擎大部分时候最好使用InnoDB,mysql 5.5.5开始默认的存储引擎改为了innodb。 3.查询缓存会缓存sql语句的查询结果,但是在数据更新时,缓存立即被清空,所以除非表数据很少的更新的情况,一般建议关闭查询缓存。 打开my.ini 设置query_cache_type=0来关闭查询缓存。 mysql还提供了一种按需缓存的方式。设...原创 2019-06-06 12:47:38 · 135 阅读 · 0 评论 -
mysql学习笔记二
sql标准的事务隔离级别包括:读未提交、读提交、可重复读、串行化(查看:SELECT @@tx_isolation) 读未提交:一个事务还没有提交时,它做的变更就能被别的事务看到 读提交:一个事务提交后,它做的变更才能被别的事务看到 可重复读:一个事务执行过程中看到的数据,总和这个事务启动时看到的数据时一致的,它做的变更在未提交时,对其他事务不可见,mysql默认 串行化:对于同一行...原创 2019-06-06 14:45:34 · 101 阅读 · 0 评论 -
mysql学习笔记三
1.在 InnoDB 事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放,而是要等到事务结束时才释放。所以把 最可能造成锁冲突、最可能影响并发度的锁尽量往后放 2.设置innodb_deadlock_detect=on来开启死锁自动检测,如果在热点更新的情况下,建议引入中间件来削峰。 3.一般情况下,尽量选用普通索引,唯一索引引入更多的开销。 4.给字符串字段加索引,可以定义一部...原创 2019-06-14 16:51:16 · 132 阅读 · 0 评论 -
mysql学习笔记四
1.mysql会给每个线程分配一块sort_buffer用于排序。如果在排序字段上建立联合索引,当前缀相同时,后面的字段一定是有序的,所以这样可以省略排序过程,如果使用覆盖索引还能省略回表的过程。 2.当在字段上使用函数时,将不再使用索引 。 3.隐式类型转换,会导致mysql做全表扫描,比如 varchar字段的age,select * from t where age=1,这种就会导致全表...原创 2019-06-18 17:28:10 · 171 阅读 · 0 评论