![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 76
茹煜得氺
相同的错误,不应该犯第二次,第三次
展开
-
Mysql事务隔离级别
Transaction Isolation Levels(事务隔离级别):事务隔离是数据库处理的基础之一,Isolation代表ACID原则的"I"。当多个事务对同一记录进行修改或查询的时候,事务隔离级别很好的协调了性能和可靠性、一致性和查询结果的复制性的关系。 Transaction Isolation Levels提供4种隔离级别(按级别由低到高排列):(1),READ_UNC...原创 2018-07-16 16:09:02 · 230 阅读 · 1 评论 -
MySQL-InnoDB常用锁类型解析
Shared(乐观锁) and Exclusive Locks(互斥锁): InnoDB有两种锁类型,Shared(s) and Exclusive(x) Locks(乐观锁和互斥锁)。 Shared(s)Locks:允许持有该锁的事务读取数据; Exclusive(x) Locks:允许持有锁的事务插入,更新或修改数据;如果事务T1在r记...原创 2018-08-09 00:24:02 · 8423 阅读 · 1 评论 -
Mysql INNODB不加锁一致性读
InnoDB使用多版本策略处理SELECT语句,不同事务间执行SELECT语句时,都会产生相对于当前数据库某个时点的一个快照。不同事务间的查询语句只会看到在当前查询时点之前数据库已经提交的记录,在查询时点之后其他事务提交的数据或者未提交的数据将无法被查询到。特例是,查询语句可以查询到查询语句所在的当前事务未提交的记录。 如果事务隔离级别是REPEATABLE...原创 2018-08-09 01:17:25 · 1239 阅读 · 0 评论 -
Mysql日期(DATE, TIME, DATETIME, TIMESTAMP)类型的比较
最近发现自己一直以来经常用一种错误的方法在比较日期,例如一下语句,a字段是一个DATETIME类型的列:select a from t1 where DATEDIFF(a, '2018-09-11') < 0;该语句是为了查出2018-09-11 日期之前的所有记录,但这个语句有个问题,如果a字段加了索引,用这种类型进行日期对比,会导致查询不走索引,从而使查询性能下降。看了My...翻译 2018-09-12 17:54:52 · 7168 阅读 · 0 评论 -
Mysql如何避免全表检索
如何使查询语句性能更好?这个问题,在我们使用mysql时,一直会存在我们脑海中。通常我们会给一个字段或多个字段加索引,或者优化查询语句,或者给字段设置合适的数据类型,数据长度,等等。但是我们应该清楚,在何种情况下,mysql会使用全表检索,何种情况下不使用,以帮助我们获得更好的查询性能。通常,当mysql使用全表检索时,我们在EXPLAIN SQL STATEMENT的时候,会发现type这一...原创 2018-09-13 00:42:19 · 1982 阅读 · 0 评论 -
Mysql建表的一些建议
建表和设计表的时候,应尽量减少表在硬盘中的空间。好处是什么?减少与硬盘的交互次数;执行查询语句的时候,越小的表占用的主内存越小;越小的表将减少索引大小,使索引查询的时候会得到更快的响应速度。在建表的时候,应该通过以下几个维度考虑提升性能:1,Table column(列); 根据存储数据的大小,设置合理的column的数据类型,如一个代表状态的字段,status范围为0...原创 2018-09-22 11:44:16 · 805 阅读 · 0 评论