深入内存数据库学习教案.pptx
《深入内存数据库学习教案.pptx》由会员分享,可在线阅读,更多相关《深入内存数据库学习教案.pptx(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1深入深入(shnr)内存数据库内存数据库第一页,共51页。2023/2/721、概述、概述(i sh)与传统数据库的比较TimesTen为什么快性能指标应用(yngyng)场景第1页/共51页第二页,共51页。2023/2/73什么什么(shn me)是内存数据库?是内存数据库?内存数据库将数据和元数据存放在内存中,可以(ky)获得极高的响应速度并实现实时数据缓存数据库与应用程序共享一个地址空间完善的事务管理,针对物理内存的优化调度算法和并发事务处理关系型数据库,支持SQL92数据可靠性、完善的数据恢复机制第2页/共51页第三页,共51页。2023/2/74与传统与传统与传统与传统(c
2、hunt(chunt ng)ng)数据库比较数据库比较数据库比较数据库比较(1)(1)传统数据库的目的是处理永久、稳定的数据。强调维护(wih)数据的完整性、一致性,但很难顾及数据及其处理的定时限制,不能满足实时应用的需要传统数据库由于磁盘IO、缓存管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大;内存数据库由于没有磁盘IO和缓存管理,能搞准确估算事务响应时间内存数据库处理的数据通常是“短暂”的,即有一定的时效。所以,实际应用中内存数据库主要处理实时性强的业务逻辑处理数据。而传统(chuntng)数据库旨在处理永久、稳定的数据,其性能目标是高的系统吞吐量和低的
3、代价传统(chuntng)数据库是IO密集型应用,内存数据库为CPU密集型应用第3页/共51页第四页,共51页。2023/2/75与传统与传统(chuntng)数据库比较数据库比较(2)CharacteristicOracleDatabase10gOracleTimesTenDatamodelRelational:SQLRelational:SQLTargetapplicationsMission-criticalMission-criticalOptimizationDisk-centric(IO)Memory-centric(CPU)TypicaldeploymentDatabase ti
4、erApplication tierArchitectureClient/serverDirect data accessResponsetimesMillisecondsMicrosecondsDatacapacityTens of terabytesTens of gigabytesScalabilityUnlimited SMP/clusterGood SMP第4页/共51页第五页,共51页。2023/2/76TimesTen为什么快?为什么快?(1)(1)第5页/共51页第六页,共51页。2023/2/77TimesTenTimesTen为什么快?为什么快?(2)第6页/共51页第七页
5、,共51页。2023/2/78TimesTenTimesTen为什么快?为什么快?(3)最小化磁盘IO没有缓存管理的消耗针对(zhndu)物理内存的优化调度算法直接访问,没有IPC消耗风险:共享地址空间第7页/共51页第八页,共51页。2023/2/79TimesTenTimesTen性能指标性能指标第8页/共51页第九页,共51页。2023/2/710使用场景使用场景使用场景使用场景(1)(1):常用:常用:常用:常用(chn(chn yn yn)数据缓存数据缓存数据缓存数据缓存缓存经常被访问的数据(shj),提高应用的处理能力及反应速度,减少网络和后台数据(shj)库的负载第9页/共51页
6、第十页,共51页。2023/2/711使用场景使用场景(chng jng)(2):热点数据缓存:热点数据缓存缓存当前正使用的“热点(rdin)数据”或重要客户的数据,已提高反应速度优化服务,提高用户的忠诚度.针对针对(zhndu)Table,换出的数据不能再换入!换出的数据不能再换入!第10页/共51页第十一页,共51页。2023/2/712使用场景使用场景(chng jng)(3):实时交易:实时交易内存数据库是可对消息队列和事务进行处理的实时(shsh)数据库,并可把处理结果“push”到后台数据库巨大的性能巨大的性能(xngnng)差异!差异!第11页/共51页第十二页,共51页。202
7、3/2/7132、TimesTen的组成的组成(z chn)TimesTen的组成日志(rzh)和检查点锁事务访问方式XLA第12页/共51页第十三页,共51页。2023/2/714TimesTen的组成的组成(z chn)第13页/共51页第十四页,共51页。2023/2/715日志日志(rzh)和检查点和检查点日志分为缓存和文件两部分日志分为缓存和文件两部分(bfen)双重检查点文件双重检查点文件Blocking/Non-Blocking增量生成增量生成Checkpoint文件文件自动删除日志自动删除日志数据从检查点和日志中恢复数据从检查点和日志中恢复LogBuffer的事务的事务(shw
8、)可能丢失!可能丢失!第14页/共51页第十五页,共51页。2023/2/716锁锁处理并发性访问的机制,序列化多个应用(yngyng)对资源的同时访问。TimesTen有三种锁机制:DataStoreDataStore级锁级锁级锁级锁 其它进程其它进程其它进程其它进程(jnchng)(jnchng)不能同时访问该不能同时访问该不能同时访问该不能同时访问该DataStoreDataStore,即,即,即,即DataStoreDataStore级的锁都是排他的。只有在当前级的锁都是排他的。只有在当前级的锁都是排他的。只有在当前级的锁都是排他的。只有在当前DataStoreDataStore上没有
9、活动的事务时,才上没有活动的事务时,才上没有活动的事务时,才上没有活动的事务时,才能获取能获取能获取能获取DataStoreDataStore级的锁。一旦获得级的锁。一旦获得级的锁。一旦获得级的锁。一旦获得DataStoreDataStore级锁,其它事务将被阻塞直到该级锁,其它事务将被阻塞直到该级锁,其它事务将被阻塞直到该级锁,其它事务将被阻塞直到该锁定被释放。锁定被释放。锁定被释放。锁定被释放。初始化、数据批量导入产生初始化、数据批量导入产生初始化、数据批量导入产生初始化、数据批量导入产生DataStoreDataStore级锁。级锁。级锁。级锁。表级锁表级锁表级锁表级锁 当事务要对一个表
10、的大部分记录进行查询、修改或者删除当事务要对一个表的大部分记录进行查询、修改或者删除当事务要对一个表的大部分记录进行查询、修改或者删除当事务要对一个表的大部分记录进行查询、修改或者删除时,就会获得表级锁。也可通过命令时,就会获得表级锁。也可通过命令时,就会获得表级锁。也可通过命令时,就会获得表级锁。也可通过命令ttOptSetFlag()ttOptSetFlag()来手工动态来手工动态来手工动态来手工动态(dngti)(dngti)设置。设置。设置。设置。行级锁行级锁行级锁行级锁行级锁的并发性是最好的。它只锁定要操作的行,所以不同的应用可以同时操作同一个表中不同的行。第15页/共51页第十六页
11、,共51页。2023/2/717事务事务(shw)(1)Datastore可被多进程(jnchng)/多线程所共享:ACID ACID 完整完整完整完整(wnzhng)(wnzhng)的事务支持。不支持嵌套事务的事务支持。不支持嵌套事务的事务支持。不支持嵌套事务的事务支持。不支持嵌套事务/XA/XA交易独立性交易独立性交易独立性交易独立性默认ReadCommitted事务级别不支持MVCC降低为串行事务级别 隔离级别与并发性是互为矛盾的隔离级别与并发性是互为矛盾的隔离级别与并发性是互为矛盾的隔离级别与并发性是互为矛盾的隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好提高效率,
12、提高效率,违反违反D!第16页/共51页第十七页,共51页。2023/2/718事务事务事务事务(shw)(2)(shw)(2)TimesTen支持两级事务(shw)隔离:ReadcommittedisolationSerializableisolationIsolation LevelIsolation LevelDirty ReadDirty Read NonRepeatable NonRepeatable ReadRead Read uncommittedRead uncommittedPossiblePossibleRead committedRead committedNot pos
13、siblePossibleRepeatable readRepeatable readNot possibleNot possibleSerializableSerializableNot possibleNot possible第17页/共51页第十八页,共51页。2023/2/719查询查询(chxn)优化优化(1)基于Cost的优化器,优化器根据下面的因素(yns)计算Cost:TableandcolumnstatisticsMetadatainformationIndexchoicesScanmethodsJoinalgorithmchoice一定一定(ydng)要用要用绑定变量!绑定
14、变量!第18页/共51页第十九页,共51页。2023/2/720查询查询(chxn)优化优化(2)Hash索引只能出现在主键上,只能用于等值匹配查询,但占用(zhnyn)空间较大;建Hash索引时必须定义Pages值(Rows/256),以避免Hash碰撞。TimesTen的两种索引的两种索引(suyn):T-tree索引适宜做范围、排序等查询(适宜做范围、排序等查询(orderby、groupby、distinct),当然它也可做等值查询,占用空间较小;全表),当然它也可做等值查询,占用空间较小;全表扫描时候,如果被扫描的表具有扫描时候,如果被扫描的表具有T-tree索引(不管这个索索引(不
15、管这个索引的列是否被用到),则性能会有较大的提升。引的列是否被用到),则性能会有较大的提升。第19页/共51页第二十页,共51页。2023/2/721查询查询(chxn)优化优化(3)统计内置命令(mnglng)ttOptEstimateStats和ttOptUpdateStats用于对数据库进行统计,以准确的计算执行路径的Cost,选择最优的执行计划。临时索引系统有时会创建(chungjin)临时索引加快查询速度,但如果临时索引创建(chungjin)地过于频繁,就要考虑手工建相应的索引,这可以通过系统表MONITOR的列CMD_TEMP_INDEXES来监测。第20页/共51页第二十一页,
16、共51页。2023/2/722查询查询(chxn)优化优化(4)最常用的扫描方式最常用的扫描方式:基于基于T-Tree索引的扫描方式索引的扫描方式基于基于Hash索引的扫描方式,索引的扫描方式,Hash索引只索引只能够建立在主键上,因此,查询能够建立在主键上,因此,查询(chxn)必然是主键查询必然是主键查询(chxn)基于基于Rowid的查找,这是最快的查询的查找,这是最快的查询(chxn)方式方式全表扫描,如果表上有一个全表扫描,如果表上有一个T-Tree索引,索引,扫描速度会明显加快扫描速度会明显加快第21页/共51页第二十二页,共51页。2023/2/723访问访问(fngwn)方式方
17、式Datastore可被多进程(jnchng)/多线程所共享:直接连接直接连接直接连接直接连接 应用以共享模式访问应用以共享模式访问应用以共享模式访问应用以共享模式访问(fngwn)DataStore(fngwn)DataStore,DataStoreDataStore被预先装载到共被预先装载到共被预先装载到共被预先装载到共 享内存段,应用则映射该共享内存段到自己的运行地享内存段,应用则映射该共享内存段到自己的运行地享内存段,应用则映射该共享内存段到自己的运行地享内存段,应用则映射该共享内存段到自己的运行地址空间上址空间上址空间上址空间上C/SC/S连接连接连接连接应用必须和TimesTen部
18、署在不同的机子上,或者32位的应用程序必须连接64位的DataStore,且32位的应用不能在64位的机子上重新编译,此时就只能选择C/S连接方式。ODBCODBC驱动管理器驱动管理器驱动管理器驱动管理器驱动管理器是独立于具体的数据源的,即在应用和数据源之间增加了一个抽象层。第22页/共51页第二十三页,共51页。2023/2/724MicroLoggingDatastore可被多进程(jnchng)/多线程所共享:共享进程空间共享进程空间共享进程空间共享进程空间(kngjin)(kngjin)会使嵌入式应用受进程故障的影会使嵌入式应用受进程故障的影会使嵌入式应用受进程故障的影会使嵌入式应用受
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深入 内存 数据库 学习 教案
限制150内