[20190524]淺談模糊查詢.txt
[20190524]淺談模糊查詢.txt
--//一臺生產系統遇到監聽程式莫名down的情況,3月份曾經遇到的情況,連結:http://blog.itpub.net/267265/viewspace-2638863/
--//當時的分析:記憶體不足(機器記憶體4G相對偏小),磁碟IO不足,sql語句沒有很好最佳化,沒有使用hugepages。
--//實際上最本質的問題是SQL語句,這套系統已經執行6年以上,裡面一些sql採用模糊查詢也就是使用like '%姓名%'之類的查詢條件.
--//首先提一下監聽程式莫名down的問題,該版本10.2.0.4有1個bug,導致監聽down掉.要打p6139856_10204_Linux-x86-64.zip補丁.
--//實際上這個bug一般出現在記憶體不足CPU資源不足的情況下才會激發。
1.關於模糊查詢:
--//實際上這套系統上線我就針對這個問題提出自己的建議,開發往往拿使用者的需求搪塞,從使用者角度講,確實需要這樣的功能.
--//比如像姓名的模糊查詢,操作使用者難道不知道查詢的姓嗎?非也,實際上大部分情況下是知道的,最多的情況下就是一些姓不會讀
--//或者讀不對,還有就是拼音開頭是z,c,s,zh,ch,sh,j之類的翻許多頁能找到(注:大部分操作人員使用紫光拼音),一些經常打的字自
--//動調整到前面)。所以講操作人員輸入姓不會打的機率很低。完全沒有必要千篇一律的查詢like '%姓名%'。
--//再比如查詢體檢編號的問題,也是使用模糊查詢,這套系統是體檢系統,為了與住院病人編號相互區別。編碼時在開頭加入'tj'標識.
--//開發為了體驗使用者操作的方便,也是使用模糊查詢,也就是不用輸入tj也可以查詢。而實際上操作使用者根本不領你這個情,查詢條件
--//都是like '%tjNNNNN%',我一掃描共享池就能看到這樣的情況。
2.我的建議:
--//實際就是給模糊查詢設定一點門檻。
--//就是在邊上設計一個按鈕,選上就是模糊查詢,執行條件變成類似就是like '%姓名%'的模糊查詢,不選就是like '姓名%'的查詢。這
--//樣等於給使用者增加一點點"難度"。而且隨著資料量增加,操作人員會慢慢體會模糊查詢的"很慢".
--//還有一種方式就是讓操作人員直接輸入%作為模糊查詢,僅僅在一些地方提示使用者如何操作就ok了,這樣改動更小,僅僅在於一點點操
--//作人員的培訓,讓他們知道如何輸入查詢條件。
3.給開發建議:
--//從我個人角度講我很少提出無法完成的工作,或者工作量很大的改動,即使我發現一些設計不合理,如果改動過大,我基本不提。
--//就是提也都是浪費時間。
--//有時候我想是不是開發根本不知道還是故意而為之,這樣的改動很難嗎?像這樣的系統即使我改用hugepages,也就是支撐1,2年.
--//說不定根本撐不到那個時間,硬體已經壞了。我見過許多專案如果從效能最佳化或者可持續執行角度講.基本上屬於豆腐渣工程。
--//更加不能理解的是,使用者最終會把這些問題莫名其妙的問題歸到網路資訊中心... 無語...
--//也許拯救整個系統最好的選擇就是購買更好的硬體,來掩蓋軟體設計開發的缺陷,良好的硬體就是一塊遮羞布,如此反覆出現。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2645470/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql 模糊查詢MySql
- oracle 精確查詢和模糊查詢Oracle
- pgsql查詢優化之模糊查詢SQL優化
- elasticsearch的模糊查詢Elasticsearch
- MyBatis模糊查詢LIKEMyBatis
- sql日期模糊查詢SQL
- mybatis - [07] 模糊查詢MyBatis
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- sql 模糊查詢問題SQL
- mybatis做like模糊查詢MyBatis
- Mybatis各種模糊查詢MyBatis
- 反向索引與模糊查詢索引
- int 被當作模糊查詢
- LINQ中的模糊查詢
- Mysql高效的模糊查詢(轉)MySql
- IndexPatternService 模糊查詢索引 fuzzyQuery分析Index索引
- 報表怎麼做模糊查詢
- 【PostgreSQL】 字首模糊查詢級優化SQL優化
- mybatis-模糊查詢like CONCATMyBatis
- Mybatis中Oracle的拼接模糊查詢MyBatisOracle
- Mybatis模糊查詢結果為空MyBatis
- mybatis 對特殊字元的模糊查詢MyBatis字元
- PostgreSQL DBA(192) - 整行模糊查詢SQL
- 模糊查詢區分大小寫嗎?
- Peewee Sqlite3 中文模糊查詢SQLite
- Oracle特殊符號的模糊查詢Oracle符號
- 儲存過程模糊查詢(like)儲存過程
- python 當中的模糊查詢Python
- PostgreSQL實時高效搜尋-全文檢索、模糊查詢、正則查詢、相似查詢、ADHOC查詢SQL
- 淺談查詢優化器中的JOIN演算法優化演算法
- [20230308]12c以上版本模糊查詢問題.txt
- mysql like查詢 - 根據多個條件的模糊匹配查詢MySql
- search(11)- elastic4s-模糊查詢AST
- mybatis xml 檔案中like模糊查詢MyBatisXML
- 如何實現模糊查詢時間段
- 加密的手機號,如何模糊查詢?加密
- 【最佳化】模糊查詢索引問題索引
- PostgreSQL十億級模糊查詢最佳實踐SQL