亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于內存表的人員信息系統綜合查詢優(yōu)化

        2019-06-20 01:34:27彭起
        科技視界 2019年12期

        【摘 要】本文主要面向人員檢索系統中數據查詢的優(yōu)化問題。該優(yōu)化算法將人員檢索數據庫綜合查詢速度從分鐘級優(yōu)化至秒級。同時解決查詢結果集組合、去重等一系列問題。為提高用戶使用體驗極大提高。

        【關鍵詞】內存表;人員信息系統;綜合查詢優(yōu)化

        中圖分類號: TP311.52 文獻標識碼: A 文章編號: 2095-2457(2019)12-0236-002

        DOI:10.19694/j.cnki.issn2095-2457.2019.12.114

        1 問題引出

        在實際的人員檢索系統中,對于全庫檢索時間效率的問題,一直是困擾開發(fā)者的難題。在我實際做項目過程中,我在做人員信息系統全庫檢索時,發(fā)現由于數據分散組織的原因,導致查詢速度異常緩慢。查詢速度緩慢給用戶帶來的體驗是極其糟糕的。劉芬[1]、楊瑩鵑[2]等做了關于優(yōu)化查詢規(guī)則、查詢邏輯等方面工作。本文將在借鑒其成果基礎上,通過優(yōu)化數據庫中數據組織、存儲方式來優(yōu)化查詢。在仔細分析系統架構之后,對系統架構做大調整,同時提出基于內存表的綜合查詢算法。以此來大幅度提高綜合查詢速度。本文所有涉及到數據表均是基于MySQL數據庫。所有涉及到的算法均采用PHP語言進行設計。

        2 相關概念解釋辨析及其應用條件

        2.1 內存表與臨時表

        內存表是指存放在內存中的表,所使用的內存大小可以通過相關的配置文件進行配置。與內存表相關的,需要區(qū)分一個概念,臨時表。臨時表也是存放在內存中,臨時表的內存也通過相關配置文件進行配置。當數據超出臨時表最大值限制時,數據將自動轉為磁盤表,而內存表相應的會提示數據溢出錯誤。

        2.2 內存表使用說明

        MySQL內存表的容量受兩個參數限制,分別是:“max_heap_table_size”和“max_rows”。也可以將“max_rows”類似參數的設定放在數據庫的存儲引擎之后。同時在使用之前,仍需修改“my.ini”文件中的相關配置項。具體是“max_heap_table_size”和“max_rows”。經過修改之后,創(chuàng)建數據庫表時將存儲引擎改為“MEMORY”即可。

        3 算法設計過程

        3.1 創(chuàng)建內存索引表

        綜合查詢時,由于需要多次訪問全庫索引表,導致頻繁“IO”請求,從而大大降低檢索速度。同時,數據管理系統的數據類型眾多,數據分散組織,碎片化較為嚴重,特將數據按照數據類型進行分類存儲。一個數據類型一張表,每一張表的關鍵字信息存入內存索引表。為提高檢索獨特,為內存表建立索引。同時將表名相關信息存入索引表中,方便后期查詢時對表進行定位。

        3.2 傳入參數分析

        本系統數據根據不同類型分散組織數據表,設計有近一百多種數據類型,每種數據類型中會涉及到人名、身份證號等信息。根據本信息系統數據表的組織方式,進行綜合查詢時,需傳入以下參數:一級分類ID;二級分類ID;年份;關鍵字一;關鍵字二;關鍵字三等等。

        3.3 算法過程詳述

        根據調用程序傳入的參數(見3.2),將一級分類ID、二級分類ID、年份三個數據集合做笛卡爾積,確定所有可能的“數據類型-年份”組合。遍歷做好的笛卡爾積,對于每一個記錄,通過一級分類ID、二級分類ID、年份組合查詢條件到索引表中查詢是否對應有數據庫表。當數據表不存在時,隨機跳出本次循環(huán),開始下一次循環(huán)。如果數據表存在,則可以拿到數據表的表名。得到數據表之后,再次根據關鍵字一、關鍵字二其中的一個或兩個或其組合作為查詢條件模糊查詢對應數據庫表。通過上述步驟即可確定查詢結果集。同時,每一張表查詢出的結果集合并,并將數據類別作為返回結果集的一個元素。詳細的算法見算法框圖一。

        算法框圖一

        3.4 查詢結果集去重

        去重操作相對簡單。PHP自身帶有“unique”函數,可作為去重的直接系統方法。但是由于返回結果集的結構相對復雜,所以單單使用“unique”函數是遠遠不能滿足去重需要的。對于一個結果集,如果進行多重“for”循環(huán),對每一種數據類型編寫去重算法,則工作量過大,而且容易出錯。如果進行的“for”循環(huán)層數太少,則無法完成去重操作。經過反復實驗,最終確定為,采用二重“for”循環(huán),并結合“unique”函數進行去重。經過反復實驗,與優(yōu)化之前相比,查詢時間效率大大提高。目前,綜合查詢的相應時間在兩秒中之內。

        3.5 查詢結果集返回

        在以上所有步驟進行完之后,即可對數據進行返回。在PHP中,數據集通常以“JSON”方式進行返回。用語句“echo json_encode($list,JSON_UNESCAPED_UNICODE)”返回數據集。至此,算法設計過程結束。

        4 結束語

        本文通過做數據庫索引表放入內存存儲、數據分類型存儲、參數優(yōu)化、查詢過程優(yōu)化、查詢結果組合和去重等方式,大幅度提高綜合查詢的效率。經過反復測試,查詢時間由原先的分鐘級別降低至現在的兩秒之內??梢钥闯觯瑢⒍喾N類型的數據分類型存儲,并建立系統內存索引表。同時優(yōu)化傳入參數等方式,其查詢效率將大大提高。在后面做人員信息檢索系統時,也可將本文中提到的算法做好的借鑒。在此算法基礎上,經過更高層次的優(yōu)化,其查詢效率也將會大幅度提高。

        【參考文獻】

        [1]劉芬.數據庫管理系統中查詢優(yōu)化的設計和實現[J].信息安全與技術,2014,5(2):82-84.

        [2]楊瑩鵑.數據庫管理系統中查詢優(yōu)化的設計與實現[J].電腦知識與技術,1009-3044(2018)25-0014-03.

        作者簡介:彭起(1998.01—),河南開封人,河南大學計算機與信息工程學院,本科在讀。

        国产黄色看三级三级三级| 女人扒开下面无遮挡| 欧美一级欧美一级在线播放| 久久99久久99精品观看| 毛片精品一区二区二区三区| 久久久久99精品成人片| 国产成人无码一区二区三区在线| 免费无码中文字幕A级毛片| 激情在线视频一区二区三区| 洲色熟女图激情另类图区| 骚片av蜜桃精品一区| 波多野结衣在线播放一区| 中文在线最新版天堂av| 可免费观看的av毛片中日美韩| 无码中文字幕免费一区二区三区| 999国产精品亚洲77777| 天堂视频一区二区免费在线观看| 久久狼精品一区二区三区| 中文字幕日韩一区二区不卡| 日韩高清毛片| 男女搞黄在线观看视频| 精品人伦一区二区三区蜜桃91| 蜜桃视频无码区在线观看| 亚洲国产一区在线二区三区| 久久亚洲精精品中文字幕早川悠里 | 人妻少妇久久中中文字幕| 99久久免费国产精品| 黄色毛片视频免费| 中文字幕丰满人妻被公强| 国产无套乱子伦精彩是白视频| 国产精品igao视频| 99久久亚洲国产高清观看| 永久中文字幕av在线免费 | 免费观看激色视频网站| 一区二区免费电影| 日本一区二区三区综合视频| 国产尤物精品视频| 国产精品久久国产精麻豆99网站| 一本久道久久综合狠狠操| 日本一区二区视频免费在线看| 亚洲精品无码av中文字幕|