随笔分类 -  数据库

摘要:WiredTiger是一种高性能的开源存储引擎,现已在MongoDB中作为内模式应用。WiredTiger支持行存储、列存储两种存储模式,采用LSM Tree方式进行索引记录 WiredTiger支持事务的ACID特性(原子性、一致性、隔离性、持久性)。对数据的存储方式可采用简易的key/value 阅读全文
posted @ 2018-01-31 10:32 Ant° 阅读(1785) 评论(0) 推荐(0)
摘要:索引是存储引擎用于快速查找记录的一种数据结构。索引对于良好的性能非常关键。尤其是当表中的数据量越来越大的时候,索引对性能的影响愈发重要,在数据量较小并且负载较低的时候,不恰当的索引对性能的影响不是很明显,但是随着数据量的增加,性能会急剧下降。 索引优化是对查询性能优化最有效的手段,索引能够轻易将查询 阅读全文
posted @ 2017-03-30 19:50 Ant° 阅读(457) 评论(0) 推荐(0)
摘要:提升性能最好的方式是在同一张表中保存衍生的冗余数据。有时候,也需要创建一张完全独立的汇总表或缓存表。建立汇总表的原因就在于:无论是通过粗略的统计计算还是严格的计数,都比计算原始表的所有行有效的多。建立缓存表的原因则是优化检索和查询语句,这些查询语句经常需要特殊的表和索引,跟普通的OLTP操作表有一些 阅读全文
posted @ 2017-03-30 16:56 Ant° 阅读(1147) 评论(0) 推荐(0)
摘要:良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询数据来设计schema,这往往需要权衡各种因素。 MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。 更小的通常更好 一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用 阅读全文
posted @ 2017-03-30 16:37 Ant° 阅读(219) 评论(0) 推荐(0)
摘要:基准测试是唯一方便有效的、可以学习系统在给定的工作负载下会发生什么的方法。基准测试可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些是重要的变化,或者观察系统如何处理不同的数据。 验证基于系统的一些假设,确认这些假设是否符合实际情况 重现系统中的某些异常行为,以解决这些异常 测试系统当前的运行 阅读全文
posted @ 2017-03-17 15:21 Ant° 阅读(4400) 评论(0) 推荐(0)
摘要:InnoDB存储引擎 该引擎是MySQL数据库的默认事务型引擎,它被设计用来处理大量短期事务(绝大多数正常提交,很少回滚) InnoDB的数据存储在表空间中,表空间是由InnoDB管理的一个黑盒子,由一系列的数据文件组成,在MySQL4.1之后的版本中,InnoDB可以将每个表的数据和索引存放在单独 阅读全文
posted @ 2017-03-17 10:50 Ant° 阅读(275) 评论(0) 推荐(0)
摘要:可以认为MVCC是行级锁的一个变种,但是它在很多情况下避免了加锁的操作,因此开销会很低。主要实现的是非阻塞的读操作,写操作也只是锁定必要的行。MVCC的实现是通过保存数据在某个时间点的快照来实现的,也就是说,不管需要执行多长时间,每一个事务看到的数据都是一致的,根据事务开始的时间不同,每个事务对同一 阅读全文
posted @ 2017-03-17 09:29 Ant° 阅读(308) 评论(0) 推荐(0)
摘要:事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组的全部语句,如果其中有任何一条语句因为崩溃或者其他原因无法执行,那么所有的语句都不会执行。( 事务内部中的语句要么全执行,要么全不执行 ) 除非系统通过严格的ACID测试, 阅读全文
posted @ 2017-03-10 14:20 Ant° 阅读(492) 评论(0) 推荐(0)