CN111143418A - 一种数据库读取数据方法、装置、设备及存储介质 - Google Patents
一种数据库读取数据方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111143418A CN111143418A CN201911385147.6A CN201911385147A CN111143418A CN 111143418 A CN111143418 A CN 111143418A CN 201911385147 A CN201911385147 A CN 201911385147A CN 111143418 A CN111143418 A CN 111143418A
- Authority
- CN
- China
- Prior art keywords
- cache
- database
- identifier
- data
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 123
- 230000008569 process Effects 0.000 claims abstract description 81
- 230000006870 function Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库读取数据方法,在获取目标数据读取指令之后,会首先在缓冲区描述符中查询对应的缓存标识;而未查询到时,会先在缓冲区描述符中新建对应的缓存标识,并调用操作系统读取包括数据库进程标识的缓冲区描述符;当操作系统读取到数据库进程标识时,会将磁盘中对应的数据直接写入到共享缓存中,最终使得用户可以读取到该数据。上述共享缓存相当于同时作为操作系统数据库读操作的页高速缓冲存储器,此时可以避免双重缓存,从而极大的提高从磁盘读取数据的速度,减少数据库从磁盘读取数据的时间。本发明还提供了一种装置、设备及存储介质,同样具有上述有益效果。
Description
技术领域
本发明涉及服务器技术领域,特别是涉及一种数据库读取数据方法、一种数据库读取数据装置、一种数据库读取数据设备以及一种计算机可读存储介质。
背景技术
当启动数据库,例如PostgreSQL数据库服务器时,操作系统将为数据库进程分配一个固定大小的共享内存块,数据库中所有对信息的访问都通过此共享内存块。数据库服务器使用的共享内存中的主要部分,被用作了数据库文件的缓存,其中就包括了大量的读操作。
在现代计算机系统中,内存与磁盘之间的速度差异通常是指数级的,磁盘的读写访问速度一直是造成系统性能瓶颈的重要原因。操作系统为提高磁盘读写速度,通常会采用设置页高速缓冲存储器(page cache),即页高缓的方式缓存磁盘数据。而当数据库,例如PostgreSQL数据库进程从磁盘读取一个从来没被服务器访问过的数据时,它首先要进入操作系统页高速缓冲存储器缓存,然后被复制到数据库缓存中,这种方式称为双重缓存。
在现有技术中,对于数据库频繁的读操作,使用双重缓存的方式从磁盘内读取数据会极大的影响数据库读取数据的时间。所以如何提供一种读取速度更快的数据库读取数据方法是本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种数据库读取数据方法,从磁盘读取数据的速度更快;本发明还提供了一种数据库读取数据装置、一种数据库读取数据设备以及一种计算机可读存储介质,从磁盘读取数据的速度更快。
为解决上述技术问题,本发明提供一种数据库读取数据方法,包括:
获取目标数据读取指令;
根据所述目标数据读取指令从缓冲区描述符中查询对应的缓存标识;
当未从所述缓冲区描述符中查询到所述缓存标识时,在所述缓冲区描述符中新建一对应所述目标数据读取指令的缓存标识,并在共享缓存中分配对应所述缓存标识的空间;所述缓冲区描述符包括数据库进程标识;
在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统读取所述缓冲区描述符;
当所述操作系统读取到所述数据库进程标识时,将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存;
根据所述目标数据读取指令读取所述共享缓存中对应的数据。
可选的,所述当所述操作系统读取到所述数据库进程标识时,将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存包括:
当所述操作系统读取到所述数据库进程标识时,通过所述操作系统在进程页表中保存所述缓存标识;
根据所述进程页表中保存的缓存标识将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存。
可选的,所述当所述操作系统读取到所述数据库进程标识时,通过所述操作系统在进程页表中保存所述缓存标识包括:
当所述操作系统读取到所述数据库进程标识时,通过所述操作系统调用mmap函数接口将所述缓存标识对应的用户态地址转换为内核态地址,并将转换为内核态地址的缓存标识保存至进程页表。
可选的,所述在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统读取所述缓冲区描述符包括:
在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统的read函数接口,读取所述缓冲区描述符。
本发明还提供了一种数据库读取数据装置,包括:
获取模块:用于获取目标数据读取指令;
查询模块:用于根据所述目标数据读取指令从缓冲区描述符中查询对应的缓存标识;
建立模块:用于当未从所述缓冲区描述符中查询到所述缓存标识时,在所述缓冲区描述符中新建一对应所述目标数据读取指令的缓存标识,并在共享缓存中分配对应所述缓存标识的空间;所述缓冲区描述符包括数据库进程标识;
调用模块:用于在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统读取所述缓冲区描述符;
写入模块:用于当所述操作系统读取到所述数据库进程标识时,将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存;
读取模块:用于根据所述目标数据读取指令读取所述共享缓存中对应的数据。
可选的,所述写入模块包括:
保存单元:用于当所述操作系统读取到所述数据库进程标识时,通过所述操作系统将在进程页表中保存所述缓存标识;
写入单元:用于根据所述进程页表中保存的缓存标识将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存。
可选的,所述保存单元具体用于:
当所述操作系统读取到所述数据库进程标识时,通过所述操作系统调用mmap函数接口将所述缓存标识对应的用户态地址转换为内核态地址,并将转换为内核态地址的缓存标识保存至进程页表。
可选的,所述调用模块具体用于:
在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统的read函数接口,读取所述缓冲区描述符。
本发明还提供了一种数据库读取数据设备,所述设备包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序时实现如上述任一项所述数据库读取数据方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述数据库读取数据方法的步骤。
本发明所提供的一种数据库读取数据方法,在获取目标数据读取指令之后,会首先在缓冲区描述符中查询对应的缓存标识;而未查询到时,意味着需要从磁盘中读取对应的数据,此时会先在缓冲区描述符中新建对应的缓存标识,并调用操作系统读取包括数据库进程标识的缓冲区描述符;当操作系统读取到数据库进程标识时,会将磁盘中对应的数据直接写入到共享缓存中,最终使得用户可以读取到该数据。在数据库从磁盘中读取数据的过程中,共享缓存相当于同时作为操作系统数据库读操作的页高速缓冲存储器,此时可以避免双重缓存,仅需要进行一次缓存即可,从而极大的提高从磁盘读取数据的速度,减少数据库从磁盘读取数据的时间。
本发明还提供了一种数据库读取数据装置、一种数据库读取数据设备以及一种计算机可读存储介质,同样具有上述有益效果,在此不再进行赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种数据库读取数据方法的流程图;
图2为本发明实施例所提供的一种具体的数据库读取数据方法的流程图;
图3为本发明实施例所提供的一种数据库读取数据装置的结构框图;
图4为本发明实施例所提供的一种数据库读取数据设备的结构框图。
具体实施方式
本发明的核心是提供一种数据库读取数据方法。在现有技术中,当数据库,例如PostgreSQL数据库进程从磁盘读取一个从来没被服务器访问过的数据时,它首先要进入操作系统页高速缓冲存储器缓存,然后被复制到数据库缓存中,这种方式称为双重缓存。但是使用双重缓存的方式从磁盘内读取数据会导致读取速度较慢,极大的影响数据库读取数据的时间。
而本发明所提供的一种数据库读取数据方法,在获取目标数据读取指令之后,会首先在缓冲区描述符中查询对应的缓存标识;而未查询到时,意味着需要从磁盘中读取对应的数据,此时会先在缓冲区描述符中新建对应的缓存标识,并调用操作系统读取包括数据库进程标识的缓冲区描述符;当操作系统读取到数据库进程标识时,会将磁盘中对应的数据直接写入到共享缓存中,最终使得用户可以读取到该数据。在数据库从磁盘中读取数据的过程中,共享缓存相当于同时作为操作系统数据库读操作的页高速缓冲存储器,此时可以避免双重缓存,仅需要进行一次缓存即可,从而极大的提高从磁盘读取数据的速度,减少数据库从磁盘读取数据的时间。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种数据库读取数据方法的流程图。
参见图1,在本发明实施例中,数据库读取数据方法包括:
S101:获取目标数据读取指令。
在本步骤中,对于目标数据读取指令的具体内容并不做具体限定,只要该目标数据读取指令能指向目标数据,并且能触发读操作即可。
S102:根据目标数据读取指令从缓冲区描述符中查询对应的缓存标识。
在本步骤中,会根据目标数据读取指令从缓冲区描述符(Buffer deseriptor)中查询对应上述目标数据读取指令的缓存标识。需要说明的是,在缓冲区描述符中存在的缓存标识均对应一已经写入缓存的数据,即已经在缓存中存储的数据均在缓冲区描述符中设置有对应的缓存标识。而在本步骤中,从缓冲区描述符中查询对应的缓存标识是为了查询缓存中是否已经存储有对应的数据。
S103:当未从缓冲区描述符中查询到缓存标识时,在缓冲区描述符中新建一对应目标数据读取指令的缓存标识,并在共享缓存中分配对应所述缓存标识的空间。
在本发明实施例中,所述缓冲区描述符包括数据库进程标识。所谓数据库进程标识即数据库进程id信息,在后续步骤中可以根据该数据库进程标识辨识出该读操作是否为数据库的读操作。有关数据库进程标识的具体内容可以根据实际情况自行设定,在此不做具体限定。
在本步骤中,当未从缓冲区描述符中查询到缓存标识时,意味着本次读取的数据没有事先存储在缓存中,需要从磁盘中读取。相应的在本步骤中,需要在缓冲区描述符中新建一对应目标数据读取指令的缓存标识,并在共享缓存中分配对应所述缓存标识的空间,以便后续步骤中将磁盘中的数据写入该空间中,以便与缓冲区描述符中建立的缓存标识相互对应。
有关共享缓存中所分配空间具体的大小可以参考现有技术,在此不再进行赘述。
S104:在缓冲区描述符中新建缓存标识之后,调用操作系统读取缓冲区描述符。
在本步骤中,会调用磁盘的操作系统读取缓冲区描述符,即将缓冲区描述符输入操作系统,以便在后续步骤中操作系统根据缓冲区描述符中包含的缓存标识、数据库进程标识等向共享缓存写入相应的数据。
S105:当操作系统读取到数据库进程标识时,将磁盘中对应缓存标识的数据直接写入到共享缓存。
在本步骤中,当操作系统读取到数据库进程标识时,意味着操作系统当前获取的操作为数据库的读操作,此时需要将磁盘中对应缓存标识的数据直接写入到共享缓存,而不需要先存储至操作系统的页高速缓冲存储器,再从页高速缓冲存储器复制至共享缓存。即本步骤中会仅仅经过一次缓存就将磁盘的数据直接写入到共享缓存,此时该共享缓存除了作为服务器的缓存,同时还相当于操作系统数据库读操作的页高速缓冲存储器,以避免对于数据库需要读取的数据进行多次缓存。
需要说明的是,当操作系统未读取到数据库进程标识时,意味着此时不是数据库进行的读操作,此时仅仅会在操作系统中先分配页高速缓冲存储器,在该页高速缓冲存储器中存储磁盘的数据,最后将该数据复制到共享缓存中。还需要说明的是,在读取磁盘中数据之前,通常需要先触发页中断,再将磁盘中的数据写入共享缓存或页高速缓冲存储器。
S106:根据目标数据读取指令读取共享缓存中对应的数据。
在本步骤中,会根据S101中获取的目标数据读取指令,读取写入共享缓存的,对应目标数据的数据,以完成数据库读取数据。需要说明的是,在S102之后,若直接从缓冲区描述符中查询到缓存标识时,会直接执行本步骤,读取共享缓存中对应的数据。
本发明实施例所提供的一种数据库读取数据方法,在获取目标数据读取指令之后,会首先在缓冲区描述符中查询对应的缓存标识;而未查询到时,意味着需要从磁盘中读取对应的数据,此时会先在缓冲区描述符中新建对应的缓存标识,并调用操作系统读取包括数据库进程标识的缓冲区描述符;当操作系统读取到数据库进程标识时,会将磁盘中对应的数据直接写入到共享缓存中,最终使得用户可以读取到该数据。在数据库从磁盘中读取数据的过程中,共享缓存相当于同时作为操作系统数据库读操作的页高速缓冲存储器,此时可以避免双重缓存,仅需要进行一次缓存即可,从而极大的提高从磁盘读取数据的速度,减少数据库从磁盘读取数据的时间。
有关本发明所提供的一种数据库读取数据方法的具体内容将在下述发明实施例中做详细介绍。
请参考图2,图2为本发明实施例所提供的一种具体的数据库读取数据方法的流程图。
参见图2,在本发明实施例中,数据库读取数据方法包括:
S201:获取目标数据读取指令。
S202:根据目标数据读取指令从缓冲区描述符中查询对应的缓存标识。
S203:当未从缓冲区描述符中查询到缓存标识时,在缓冲区描述符中新建一对应目标数据读取指令的缓存标识,并在共享缓存中分配对应所述缓存标识的空间。
上述S201至S203与上述发明实施例中S101至S103基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。在本步骤中,在新建缓存标识并在共享缓存中分配对应的空间之后,通常会设置缓冲区描述符的标志位IO_IN_PROCESS为1,以表示需要等待数据从磁盘读完成。
S204:在缓冲区描述符中新建缓存标识之后,调用操作系统的read函数接口,读取所述缓冲区描述符。
在本步骤中,具体会调用操作系统的read函数接口,并传入新建有缓存标识的缓冲区描述符。在调用操作系统的read函数接口之后,操作系统即可以分辨出需要执行操作为读操作;而当从输入的参数中检测出数据库进程标识时,可以认定此时的操作为数据库的读操作。
S205:当操作系统读取到数据库进程标识时,通过操作系统在进程页表中保存缓存标识。
在本步骤中,当识别出此时的操作为数据库的读操作时,会通过操作系统在进程页表中保存缓存标识,以便操作系统根据进程页表中记录的内容进行操作。
具体的,本步骤通常具体为:当所述操作系统读取到所述数据库进程标识时,通过所述操作系统调用mmap函数接口将所述缓存标识对应的用户态地址转换为内核态地址,并将转换为内核态地址的缓存标识保存至进程页表。通过mmap函数接口可以直接将read函数接口所获取的缓存标识对应的用户态地址转换为内核态地址,以便通过进程页表保存缓存标识。
S206:根据进程页表中保存的缓存标识将磁盘中对应缓存标识的数据直接写入到所述共享缓存。
在本步骤中,操作系统会根据进程页表中保存的缓存标识将磁盘中对应缓存标识的数据直接写入到所述共享缓存。具体的,在执行完本步骤之后,通常会将上述缓冲区描述符的标志位IO_IN_PROCESS设置为0,以表示数据已从磁盘读完成。
S207:根据目标数据读取指令读取共享缓存中对应的数据。
在本步骤中,当检测到IO_IN_PROCESS为0时,会从共享缓存中读取对应的数据,以使数据库完成读取数据。本步骤的其余内容与上述发明实施例中S106基本一致,详细内容请参考上述发明实施例。
本发明实施例所提供的一种数据库读取数据方法,在数据库从磁盘中读取数据的过程中,共享缓存相当于同时作为操作系统数据库读操作的页高速缓冲存储器,此时可以避免双重缓存,仅需要进行一次缓存即可,从而极大的提高从磁盘读取数据的速度,减少数据库从磁盘读取数据的时间。
下面对本发明实施例所提供的一种数据库读取数据装置进行介绍,下文描述的数据库读取数据装置与上文描述的数据库读取数据方法可相互对应参照。
图3为本发明实施例所提供的一种数据库读取数据装置的结构框图,参照图3,数据库读取数据装置可以包括:
获取模块100:用于获取目标数据读取指令。
查询模块200:用于根据所述目标数据读取指令从缓冲区描述符中查询对应的缓存标识。
建立模块300:用于当未从所述缓冲区描述符中查询到所述缓存标识时,在所述缓冲区描述符中新建一对应所述目标数据读取指令的缓存标识,并在共享缓存中分配对应所述缓存标识的空间;所述缓冲区描述符包括数据库进程标识。
调用模块400:用于在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统读取所述缓冲区描述符。
写入模块500:用于当所述操作系统读取到所述数据库进程标识时,将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存。
读取模块600:用于根据所述目标数据读取指令读取所述共享缓存中对应的数据。
作为优选的,在本发明实施例中,所述写入模块500可以包括:
保存单元:用于当所述操作系统读取到所述数据库进程标识时,通过所述操作系统将在进程页表中保存所述缓存标识;
写入单元:用于根据所述进程页表中保存的缓存标识将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存。
作为优选的,在本发明实施例中,所述保存单元具体用于:
当所述操作系统读取到所述数据库进程标识时,通过所述操作系统调用mmap函数接口将所述缓存标识对应的用户态地址转换为内核态地址,并将转换为内核态地址的缓存标识保存至进程页表。
作为优选的,在本发明实施例中,所述调用模块400具体用于:
在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统的read函数接口,读取所述缓冲区描述符。
本实施例的数据库读取数据装置用于实现前述的数据库读取数据方法,因此数据库读取数据装置中的具体实施方式可见前文中数据库读取数据方法的实施例部分,例如,获取模块100,查询模块200,建立模块300,调用模块400,写入模块500,读取模块600分别用于实现上述数据库读取数据方法中步骤S101,S102,S103,S104,S105以及S106,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
下面对本发明实施例提供的一种数据库读取数据设备进行介绍,下文描述的数据库读取数据设备与上文描述的数据库读取数据方法以及数据库读取数据装置可相互对应参照。
请参考图4,图4为本发明实施例所提供的一种数据库读取数据设备的结构框图。
参照图4,该数据库读取数据设备可以包括处理器11和存储器12。
所述存储器12用于存储计算机程序;所述处理器11用于执行所述计算机程序时实现上述发明实施例中所述的数据库读取数据方法。
本实施例的数据库读取数据设备中处理器11用于安装上述发明实施例中所述的数据库读取数据装置,同时处理器11与存储器12相结合可以实现上述任一发明实施例中所述的数据库读取数据方法。因此数据库读取数据设备中的具体实施方式可见前文中的数据库读取数据方法的实施例部分,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一发明实施例中所介绍的一种数据库读取数据方法。其余内容可以参照现有技术,在此不再进行展开描述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种数据库读取数据方法、一种数据库读取数据装置、一种数据库读取数据设备以及一种计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种数据库读取数据方法,其特征在于,包括:
获取目标数据读取指令;
根据所述目标数据读取指令从缓冲区描述符中查询对应的缓存标识;
当未从所述缓冲区描述符中查询到所述缓存标识时,在所述缓冲区描述符中新建一对应所述目标数据读取指令的缓存标识,并在共享缓存中分配对应所述缓存标识的空间;所述缓冲区描述符包括数据库进程标识;
在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统读取所述缓冲区描述符;
当所述操作系统读取到所述数据库进程标识时,将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存;
根据所述目标数据读取指令读取所述共享缓存中对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述当所述操作系统读取到所述数据库进程标识时,将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存包括:
当所述操作系统读取到所述数据库进程标识时,通过所述操作系统在进程页表中保存所述缓存标识;
根据所述进程页表中保存的缓存标识将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存。
3.根据权利要求2所述的方法,其特征在于,所述当所述操作系统读取到所述数据库进程标识时,通过所述操作系统在进程页表中保存所述缓存标识包括:
当所述操作系统读取到所述数据库进程标识时,通过所述操作系统调用mmap函数接口将所述缓存标识对应的用户态地址转换为内核态地址,并将转换为内核态地址的缓存标识保存至进程页表。
4.根据权利要求1所述的方法,其特征在于,所述在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统读取所述缓冲区描述符包括:
在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统的read函数接口,读取所述缓冲区描述符。
5.一种数据库读取数据装置,其特征在于,包括:
获取模块:用于获取目标数据读取指令;
查询模块:用于根据所述目标数据读取指令从缓冲区描述符中查询对应的缓存标识;
建立模块:用于当未从所述缓冲区描述符中查询到所述缓存标识时,在所述缓冲区描述符中新建一对应所述目标数据读取指令的缓存标识,并在共享缓存中分配对应所述缓存标识的空间;所述缓冲区描述符包括数据库进程标识;
调用模块:用于在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统读取所述缓冲区描述符;
写入模块:用于当所述操作系统读取到所述数据库进程标识时,将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存;
读取模块:用于根据所述目标数据读取指令读取所述共享缓存中对应的数据。
6.根据权利要求5所述的装置,其特征在于,所述写入模块包括:
保存单元:用于当所述操作系统读取到所述数据库进程标识时,通过所述操作系统将在进程页表中保存所述缓存标识;
写入单元:用于根据所述进程页表中保存的缓存标识将磁盘中对应所述缓存标识的数据直接写入到所述共享缓存。
7.根据权利要求6所述的装置,其特征在于,所述保存单元具体用于:
当所述操作系统读取到所述数据库进程标识时,通过所述操作系统调用mmap函数接口将所述缓存标识对应的用户态地址转换为内核态地址,并将转换为内核态地址的缓存标识保存至进程页表。
8.根据权利要求5所述的装置,其特征在于,所述调用模块具体用于:
在所述缓冲区描述符中新建所述缓存标识之后,调用操作系统的read函数接口,读取所述缓冲区描述符。
9.一种数据库读取数据设备,其特征在于,所述设备包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序时实现如权利要求1至4任一项所述数据库读取数据方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述数据库读取数据方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911385147.6A CN111143418B (zh) | 2019-12-28 | 2019-12-28 | 一种数据库读取数据方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911385147.6A CN111143418B (zh) | 2019-12-28 | 2019-12-28 | 一种数据库读取数据方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143418A true CN111143418A (zh) | 2020-05-12 |
CN111143418B CN111143418B (zh) | 2023-09-08 |
Family
ID=70521340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911385147.6A Active CN111143418B (zh) | 2019-12-28 | 2019-12-28 | 一种数据库读取数据方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143418B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114089912A (zh) * | 2021-10-19 | 2022-02-25 | 银联商务股份有限公司 | 基于消息中间件的数据处理方法及装置、存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405237B1 (en) * | 1994-10-11 | 2002-06-11 | Sun Microsystems, Inc. | Method and apparatus for an efficient data transfer mechanism |
US20050198062A1 (en) * | 2004-03-05 | 2005-09-08 | Shapiro Richard B. | Method and apparatus for accelerating data access operations in a database system |
CN101901250A (zh) * | 2010-06-08 | 2010-12-01 | 中兴通讯股份有限公司 | 一种内存数据库及其数据处理方法 |
US20110202733A1 (en) * | 2007-05-10 | 2011-08-18 | Nitrosphere Corporation | System and/or method for reducing disk space usage and improving input/output performance of computer systems |
CN104407990A (zh) * | 2014-12-08 | 2015-03-11 | 北京星网锐捷网络技术有限公司 | 一种磁盘访问方法及装置 |
CN106775462A (zh) * | 2016-11-30 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种读写过程中减少内存拷贝的方法和装置 |
US20170262172A1 (en) * | 2014-11-28 | 2017-09-14 | Huawei Technologies Co., Ltd. | File Access Method and Apparatus, and Storage Device |
CN107480074A (zh) * | 2017-08-31 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种缓存方法、装置及电子设备 |
CN108062253A (zh) * | 2017-12-11 | 2018-05-22 | 北京奇虎科技有限公司 | 一种内核态与用户态的通信方法、装置及终端 |
CN108959519A (zh) * | 2018-06-28 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种读取数据的方法、装置和计算机可读存储介质 |
-
2019
- 2019-12-28 CN CN201911385147.6A patent/CN111143418B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405237B1 (en) * | 1994-10-11 | 2002-06-11 | Sun Microsystems, Inc. | Method and apparatus for an efficient data transfer mechanism |
US20050198062A1 (en) * | 2004-03-05 | 2005-09-08 | Shapiro Richard B. | Method and apparatus for accelerating data access operations in a database system |
US20110202733A1 (en) * | 2007-05-10 | 2011-08-18 | Nitrosphere Corporation | System and/or method for reducing disk space usage and improving input/output performance of computer systems |
CN101901250A (zh) * | 2010-06-08 | 2010-12-01 | 中兴通讯股份有限公司 | 一种内存数据库及其数据处理方法 |
US20170262172A1 (en) * | 2014-11-28 | 2017-09-14 | Huawei Technologies Co., Ltd. | File Access Method and Apparatus, and Storage Device |
CN104407990A (zh) * | 2014-12-08 | 2015-03-11 | 北京星网锐捷网络技术有限公司 | 一种磁盘访问方法及装置 |
CN106775462A (zh) * | 2016-11-30 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种读写过程中减少内存拷贝的方法和装置 |
CN107480074A (zh) * | 2017-08-31 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种缓存方法、装置及电子设备 |
CN108062253A (zh) * | 2017-12-11 | 2018-05-22 | 北京奇虎科技有限公司 | 一种内核态与用户态的通信方法、装置及终端 |
CN108959519A (zh) * | 2018-06-28 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种读取数据的方法、装置和计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114089912A (zh) * | 2021-10-19 | 2022-02-25 | 银联商务股份有限公司 | 基于消息中间件的数据处理方法及装置、存储介质 |
CN114089912B (zh) * | 2021-10-19 | 2024-05-24 | 银联商务股份有限公司 | 基于消息中间件的数据处理方法及装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111143418B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111125447A (zh) | 一种元数据访问方法、装置、设备及可读存储介质 | |
CN107391038B (zh) | 资料存储型闪存的数据写入方法、闪存及存储介质 | |
CN111737564B (zh) | 一种信息查询方法、装置、设备及介质 | |
CN108874688B (zh) | 一种报文数据缓存方法及装置 | |
CN110737388A (zh) | 数据预读方法、客户端、服务器以及文件系统 | |
EP2919120A1 (en) | Memory monitoring method and related device | |
CN112506823A (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
CN109213450B (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN106844721A (zh) | 数据存储方法、装置、系统、可读介质及存储控制器 | |
WO2020192710A1 (zh) | 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置 | |
CN109508150B (zh) | 一种存储空间分配的方法和装置 | |
CN111143418A (zh) | 一种数据库读取数据方法、装置、设备及存储介质 | |
CN110334034B (zh) | 映射表动态加载的方法、装置、计算机设备及存储介质 | |
CN111061429B (zh) | 一种数据访问方法、装置、设备、介质 | |
CN111090782A (zh) | 一种图数据存储方法、装置、设备及存储介质 | |
CN111008233A (zh) | 一种kv数据库的访问方法、装置及设备 | |
US9684660B2 (en) | File processing method and system | |
CN107766385B (zh) | 一种转换虚拟磁盘文件格式的方法与设备 | |
CN106557385B (zh) | 数据快照方法和存储设备 | |
US11868620B2 (en) | Read-write method and apparatus, electronic device, and readable memory medium | |
CN109408547B (zh) | 一种sam注册表的读取方法、读取系统及相关装置 | |
CN112015672A (zh) | 一种存储系统中数据处理方法、装置、设备及存储介质 | |
CN108845959B (zh) | 一种内存数据处理方法、装置和电子设备 | |
CN110597828A (zh) | 一种数据库变更方法、装置、设备及存储介质 | |
CN112463041A (zh) | 一种主机读写数据的处理方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |