亚洲免费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—),河南開封人,河南大學計算機與信息工程學院,本科在讀。

        国产伪娘人妖在线观看| 亚洲丁香五月天缴情综合| 国产精品国语对白露脸在线播放| 尤物yw午夜国产精品视频| av成人综合在线资源站| 欧美激情肉欲高潮视频| 欧美激情内射喷水高潮| 亚洲网站免费看| 蜜桃噜噜一区二区三区| 人妻少妇久久中文字幕| 伊人久久综合无码成人网| 久久精品人人做人人综合| 亚洲欧美日韩高清中文在线| 求网址日韩精品在线你懂的| 国产麻花豆剧传媒精品mv在线 | 偷拍一区二区盗摄视频| 国产av旡码专区亚洲av苍井空| 国产日韩成人内射视频| 中文字幕偷拍亚洲九色| 人妻制服丝袜中文字幕| 女人被狂c躁到高潮视频| 国产一区二区三区小说| 亚洲av综合色区久久精品| 刺激一区仑乱| 亚洲成a人v欧美综合天堂麻豆| 国产aⅴ丝袜旗袍无码麻豆| 国产精品亚洲av高清二区| 久久99精品国产麻豆不卡| 亚洲国产一区在线二区三区| 亚洲一区二区三区亚洲| 少妇高潮av久久久久久| 乱子伦视频在线看| 亚洲一二三四五区中文字幕| 亚洲毛片在线免费视频| 污污内射在线观看一区二区少妇 | 蜜桃臀无码内射一区二区三区| yw193.can尤物国产在线网页| 国产一区二区三区啊啊| 日韩精品无码中文字幕电影| 久久国产综合精品欧美| 中文字幕亚洲五月综合婷久狠狠|