易截截图软件、单文件、免安装、纯绿色、仅160KB

对MySQL中的锁机制的总结

今天来简单总结一下MySQL

锁机制,不妥的欢迎拍砖!
  1、对于MySQL来说,有三种锁的级别:页级、表级、行级。
  页级的典型代表引擎为BDB。
  表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。
  行级的典型代表引擎为INNODB。
  2、我们实际应用中用的最多的就是行锁了。
  行级锁的优点如下:
  1)、当很多连接分别进行不同的查询时减小LOCK状态。
  2)、如果出现异常,可以减少数据的丢失。因为一次可以只回滚一行或者几行少量的数据。
  行级锁的缺点如下:
  1)、比页级锁和表级锁要占用更多的内存。
  2)、进行查询时比页级锁和表级锁需要的I/O要多,所以我们经常把行级锁用在写操作而不是读操作。
  3)、容易出现死锁。
  3、MySQL用写队列和读队列来实现对数据库的写和读操作。
  对于写锁定如下:
  1)、如果表没有加锁,那么对其加写锁定。
  2)、否则,那么把请求放入写锁队列中。
  对于读锁定如下:
  1)、如果表没有加写锁,那么加一个读锁。
  2)、否则,那么把请求放到读锁队列中。
  当然我们可以分别用low_priority 以及high_priority在写和读操作上来改变这些行为。
  4、下面我来一个简单的例子解释上面的说法
  我们来运行一个时间很长的查询
  1)客户端1:
  mysql>selectcount(*) from content group by content;
  ...
  客户端2:
  mysql>updatecontent set content = 'I love you' where id = 444;
  Query OK, 1 row affected (30.68 sec)
  Rows matched: 1 Changed: 1 Warnings: 0
  用了半分钟。
  2)我们现在终止客户端1。
  此时客户端2:
  mysql>updatecontent set content = 'I hate you' where id = 444;
  Query OK, 1 row affected (0.02 sec)
  Rows matched: 1 Changed: 1 Warnings: 0
  仅仅用了20毫秒。
  这个例子很好的说明了读写队列的运行。
  对于1中的客户端1,此时表没有加锁,当然也没有加写锁了,那么此时客户端1对表加了一个读锁。
  对于1中的客户端2,此时因为表有一个读锁,所以把UPDATE请求放到写锁定队列中。
  当读锁释放的时候,也就是SHOW PROCESSLIST中STATUS 为COPY TO TMP
TABLE的时候,UPDATE操作开始执行。
  5、可以在REPLICATION中对MASTER
和SLAVE运用不同的锁定使系统达到最佳的性能。(当然这个前提是


相关文档:

PHP/MYSQL实现按字母检索

方法一:建一个拼音表 t_cosler ,存放每个字母开头的第一个汉字的编号和最后一个汉字的编号。   
BatchFile code+------+--------+-------+  
| f_PY | cBegin | cEnd  |  
+------+--------+-------+  
| A    |  45217 | 45252 | & ......

设置MySQL数据同步(单向&双向)

设置MySQL数据同步(单向&双向)
由于公司的业务需求,需要网通和电信的数据同步,就做了个MySQL的双向同步,记下过程,以后用得到再翻出来,也贴出来供大家参考。
一、准备服务器
由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Ma ......

完美解决mysql下utf 8的乱码问题


完美解决mysql下utf-8的乱码问题
建表时先加上default charset=utf8;
插入中文数据之前(Mysql命令提示符下)是用set names gb2312;
在php页面中设置是mysql_query('SET NAMES UTF8');
在php页面(已设定为utf8后)中插入中文数据不会出现乱码,应该插入数据库的时候就是以utf8字符集插入中文数据的故不会出现问题!
在php ......

MySQL数据库引擎介绍

如果你是个赛车手,并且按一下按钮就能够立即更换引擎而不需要把车开到车库里去换,那会是什么感觉呢?MySQL数据库为开发人员所做的就好像是按按钮换
引擎;它让你选择数据库引擎,并给你一条简单的途径来切换它。
MySQL的自带引擎肯定是够用了,但是在有些情况下,其他的引擎可能要比手头所用更适合完成任务。如果愿意的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号