mysql
new-non
这个作者很懒,什么都没留下…
展开
-
数据库字段char varchar
char 长度是固定的,varchar长度可变的,char 不足长度会用空字符补足,而varchar则是存储的实际长度 varchar比较节省空间,但是执行效率不如char,但是一个varchar如果经常被改动会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。 贴上大牛回答,哈哈转载 2016-04-29 16:09:17 · 282 阅读 · 0 评论 -
mysql 数据表读锁机制详解
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。 一、概述 MySQL有三种锁的级别:页级、表级、行级。 MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locki转载 2016-12-07 13:06:49 · 347 阅读 · 0 评论 -
mysql explain 结果解释
explain显示了mysql如何使用索引来处理select语句以及连接表。 帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了,如: explain select * from statuses_status where id=11; explain列的解释table:显示这一行的数据是关于哪张表的type:这是重原创 2017-03-22 10:10:00 · 446 阅读 · 0 评论 -
并发调度的可串行性
计算机系统对并发事务中并发操作的调度是随机的,而不同的调度可能会产生不同的结果,那么哪个结果是正确的,哪个是不正确的呢? 如果一个事务运行过程中没有其他事务同时运行,也就是说它没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的或者预想的。因此将所有事务串行起来的调度策略一定是正确的调度策略。虽然以不同的顺序串行执行事务可能会产生不同的结果,但由子不会将数据库置于不一致状态,所转载 2017-04-10 00:12:17 · 2639 阅读 · 0 评论 -
mysql 锁细节
MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。 举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键。 例1: (明确指定主键,并转载 2017-04-10 02:07:14 · 374 阅读 · 0 评论