MySQL锁机制/管理(并发锁,行锁,表锁,预加锁,全局锁等等)
分类: MySQL基础知识 | 发布: OurMySQL | 来源:谭俊青
标签: InnoDB, lock, metadata, Table cache
Meta-data元数据锁:在table cache缓存里实现的,为DDL(Data Definition Language)提供隔离操作。一种特别的meta-data元数据类型,叫Name Lock。(SQL层)
表级table-level数据锁(SQL层)
存储引擎特有机制 — row locks行锁,page locks页锁,table locks表级,版本控制(在引擎中实现)
全局读锁 — FLUSH TABLES WITH READ LOCK(SQL层)
我对技术方向的一些反思
分类: MySQL高级应用 | 发布: OurMySQL | 来源:HELLO DBA
标签: mysql, NoSQL, Oracle, SSD, 可扩展, 存储, 小型机, 架构
我在公司五年多了,最初的数据库就是采用PC服务器,然后我们统一把他们整合到小型机上的集中式数据库,把MySQL换成Oracle,而现在我们又要把小型机换成PC服务器,把集中式Oracle数据库拆分成MySQL数据库集群,这不是简单的轮回,而是技术发展的结果。
虽然现在的发展趋势是分布式架构,但是说不定过几年又会出现超级计算机,从而又走向集中式的道路。我们要做的是能够看到3年内技术发展的一个方向,适应技术发展的潮流,并不断调整目标,在解决问题的过程中不断优化。问题和技术都是不断发展的,试图设计一个完美的解决方案是不现实的,在一个问题被解决后,一定会有新的问题冒出来。
选择简单但是不完美的技术解决问题,先做!然后再不断优化。如果不去尝试,我们永远也不知道下一步要做什么,总是停留在对技术方案本身优劣的讨论上,是没有意义的。
人总是在不断反思,不断否定自我的过程中进步的,技术发展也是一样。
InnoDB Adaptive Flush
分类: MySQL基础知识 | 发布: OurMySQL | 来源:简朝阳
标签: Adaptive, InnoDB, innodb_adaptive_flushing
从 InnoDB 了解到,plugin 1.0.4 开始,提供了一个新的脏数据刷新机制,被称为: innodb_adaptive_flushing 。由于之前在各种性能测试以及线上环境的性能监控中时常遇到当 InnoDB 在进行大批量 Dirty Page 的 Flush 过程中,会对系统的整体性能造成不小的影响,所以个人对这个新机制比较感兴趣,仔细分析了下这个机制到底改善了些什么内容。
冗余索引对查询效率的影响
在一般的数据库书籍中,简述到如何合理创建索引时都会出现这么一段话:
“索引能提高sql的执行效率,但是过多不合理的索引也会影响数据库的性能”
过度索引是如何影响数据库的性能的呢?
