MySql性能相关的一些概念(性能tip0)

标签: mysql 性能 相关 | 发表时间:2012-01-17 08:58 | 作者:changedi
出处:http://www.blogjava.net/

题首:这是最近读《高性能MySqL 第二版》记录下来的东西~

#读锁(共享锁)、写锁(排他锁):读锁是共享的,互不阻塞,读取同一资源互不影响;写锁排他,一个写锁会阻塞其他的读写操作。

#锁定对象的粒度:表锁和行锁。

表锁:整个表加锁,当写操作时,加写锁,资源访问排他。当没有写时,加读锁,读锁互不冲突。写锁比读锁有高优先级。开销较小。

行级锁:对一行加锁,开销大,支持最大并发处理。

#事务:ACID

A原子性:一个事务是一个原子不可分的工作单元,内部的工作不会被部分执行,要么全部执行,要么根本不执行

C一致性:数据库从一种一致状态转到另一种一致状态,事务执行过程中的数据改变不会影响数据库数据。

I 隔离性:某个事务的结果只有在事务完成后才对其他事务可见。

D持久性:一个事务提交后的结果改变将是持久的,不会马上消失。

#MVCC:多版本并发控制

#几个存储引擎:

MyISAM:加表锁,在select查询时可以在同一张表完成插入(并发插入),可以基于BLOB和TEXT的前500字符进行相关索引。

InnoDB:事务引擎,适合处理大量短期事务,基于聚簇索引,不压缩索引

Memory:基于堆的,内存存储,支持哈希索引

Archive:只支持insert和select,不支持索引,缓冲了数据写操作,插入时使用zlib算法压缩,比MyISAM磁盘IO消耗少,所有 的select查询执行全表扫描,适合logging,支持行级锁。

存储引擎 MySqL版本 事务 锁粒度 主要应用 忌用
MyISAM 全部 不支持 支持并发插入的表锁 select,insert,高负载 读写并重的场合
MyISAM Merge 全部 不支持 支持并发插入的表锁 分段归档,数据仓库 许多全局查找
Memory(Heap) 全部 不支持 表锁 中间计算,静态数据查找 大型数据集,持久性存储
InnoDB 全部 支持 支持MVCC的行级锁 事务处理 无
Falcon 6.0 支持 支持MVCC的行级锁 事务处理 无
Archive 4.1 支持 支持MVCC的行级锁 日志记录,聚合分析 需要随机读取、更新、删除
CSV 4.1 不支持 表锁 日志记录,大规模加载外部数据 需要随机读取、索引
Blackhole 4.1 支持 支持MVCC的行级锁 日志记录或同步归档 除非有特别目的,否则不适合任何场合
Federated 5.0 N/A N/A 分布式数据源 除非有特别目的,否则不适合任何场合
NDB Cluster 5.0 支持 行级锁 高可靠性 大部分典型应用
PBXT 5.0 支持 支持MVCC的行级锁 事务处理,日志记录 需要聚集索引
SolidDB 5.0 支持 支持MVCC的行级锁 事务处理 无
Maria 6.x 支持 支持MVCC的行级锁 替代MyISAM 无


changedi 2012-01-17 08:58 发表评论

相关 [mysql 性能 相关] 推荐:

MySql性能相关的一些概念(性能tip0)

- - BlogJava-首页技术区
题首:这是最近读《高性能MySqL 第二版》记录下来的东西~. #读锁(共享锁)、写锁(排他锁):读锁是共享的,互不阻塞,读取同一资源互不影响;写锁排他,一个写锁会阻塞其他的读写操作. #锁定对象的粒度:表锁和行锁. 表锁:整个表加锁,当写操作时,加写锁,资源访问排他. 当没有写时,加读锁,读锁互不冲突.

MySQL 性能

- - 谁主沉浮
这里罗列了一些基本的 MySQL 性能提示,但不是放之四海而皆准,需要根据实际的应用情况而决定. 使用标准化设计(数据库三范式),记住表的联合查询(join)性能不会差. 选择合适的字符集,虽然UTF16无所不能,但需要两倍的存储;UTF8适合各种字符,但比latin1慢,尽可能选用latin1(此条不适合中文).

MySQL性能优化

- sun - IT程序员面试网
在笔试面试中,尤其是像百度,淘宝这些数据量非常大,而且用LAMP架构的公司,数据库优化方面就显得特别重要了. 此外,除了数据库索引之外,在LAMP结果如此流行的今天,数据库(尤其是MySQL)性能优化也是海量数据处理的一个热点. 下面就结合自己的经验,聊一聊MySQL数据库优化的几个方面. 首先,在数据库设计的时候,要能够充分的利用索引带来的性能提升,至于如何建立索引,建立什么样的索引,在哪些字段上建立索引,上面已经讲的很清楚了,这里不在赘述.

Mysql性能优化

- - 数据库 - ITeye博客
MySQL性能优化.   性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间. 性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等.   数据库管理人员可以使用SHOW STATUS语句来查询MySQL数据库的性能. 语法:SHOW STATUE LIKE ‘value’;其中value参数是常用的几个统计参数.

mysql 5.6性能vs mysql 5.5的讨论

- - ITeye博客
这几天老外就mysql 5.6和5.5,MariaDB的benchmark讨论的很热烈,参考http://t.cn/zYoXNND一文,而法国朋友身先士卒,在http://t.cn/zYKgDmk中一连做了多个评测. 1) 在大名顶顶的percona公司的Peter Zaitsev 一文中(http://www.mysqlperformanceblog.com/2013/02/18/is-mysql-5-6-slower-than-mysql-5-5/).

mysql性能优化教程

- coolzsb - caoz的和谐blog

mysql性能最大化

- - CSDN博客数据库推荐文章
#跳过外部锁定 只对MyISAM. #禁用tcp socket连接,只能使用unix/linux socket连接. #禁用DNS解析,提高连接速度. #跳过授权表,忘记root密码时使用. #服务器关闭一个交互连接前等待的秒数,默认28800. #线程缓存数,直接利用空闲连接来创建新连接,1G  —> 8 2G  —> 16 3G  —> 32 >3G  —> 64.

MySQL性能建议者:mysqltuner.pl

- - CSDN博客数据库推荐文章
一些简单的命令可从 --help 查阅. 输出结果简单明了,读者有兴趣可参阅官网博客. 作者:linwaterbin 发表于2013-10-23 0:13:37 原文链接. 阅读:147 评论:0 查看评论.

MySQL性能医生:OrzDBA

- - CSDN博客数据库推荐文章
A    trunk/orzdba工具使用说明.pdf. 需要在代码160行左右配置MySQL的相关验证信息,如username,password,host,port,sock等. ㈠ 查看MySQL响应时间(rt). 在源码161行左右把 /usr/bin/tcprstat 加入默认读取的位置. 再解压orzdba_rt_depend_perl_module.tar.gz,安装rt所依赖的perl模块.

mysql 性能调优(转)

- - 数据库 - ITeye博客
转自:http://suhuanzheng7784877.iteye.com/blog/2047209. Mysql高性能学习笔记-01. Mysql整体的架构模块如下图所示. 模块1:连接客户端,这个一般是指mysql基于mysql通讯协议的驱动程序. 比如mysql的Java的JDBC驱动程序——mysql-connector-java-5.1.26-bin.jar.