關於like %%的優化思路
測試數據:2億行,被篩選出的數據,3KW多行。
眾所周知 like %str%無法走索引,但是我們如果實在是有這種需求要達到like ‘%str%‘的篩選目的,怎麽優化好一些呢?
以下是我的一些思考:
(1)全文索引:原理是利用倒排索引,構建由謂詞、短語、關鍵詞等組成記錄索引。但其實如果詞用的不好會有問題,而且並不夠精準,可能str相關的也出來了,且並不包含str這個字符串;
(2)構建計算列:
如果數據量少,直接基於要like的A列,再構造一個函數計算列B列取值為reverse(A),然後每次A列生成字符串,B列會自動產生反向字符串。 然後 比如A列為‘abcde’ 原本 我要like ‘%bc%‘,現在只需要A B列都加上索引,條件給 AND A like ‘bc%‘ AND B like ‘cb%‘就好了。 (3)強行用其他辦法試一波 【1】反向
【2】charindex
對比,直接like花費13分鐘
使用charindex
關於like %%的優化思路
相關推薦
關於like %%的優化思路
一個 利用 記錄 char nbsp 問題 har 思考 reverse 測試數據:2億行,被篩選出的數據,3KW多行。 眾所周知 like %str%無法走索引,但是我們如果實在是有這種需求要達到like ‘%str%‘的篩選目的,怎麽優化好一些呢? 以下是我的一些思考
秒殺系統架構優化思路
沒有 bsp 認證 mis red src 系統 如果 所有 一、為什麽難 秒殺系統難做的原因:庫存只有一份,所有人會在集中的時間讀和寫這些數據。 例如小米手機每周二的秒殺,可能手機只有1萬部,但瞬時進入的流量可能是幾百幾千萬。 又例如12306搶票,亦與秒殺類似,瞬時流量
【FAQ系列】:DB服務器產生大量物理讀問題優化思路
服務器 通過 負責 為什麽 from cnblogs sha stat ron 一 【現象】 1、7點到9點IO監控指標util特別高,如下: 2 、查看讀寫情況:讀產生很高的物理IO,如下 【分析】:對比其他服務器,buffer pool都是80G,正常情況下熱點數
spark(二)優化思路
hash 分區 location lock 自己 其他 jvm的內存 磁盤 包括 優化思路 內存優化 內存優化大概分為三個方向 1.所有對象的總內存(包括數據和java對象) 2.訪問這些對象的開銷 3.垃圾回收的開銷 其中Java的原生對象往往都能被很快的訪問
tableView優化思路
重疊 out ask named 高度 sub run format 創建 一般優化的思路: 提前計算並緩存好高度(布局),因為heightForRowAtIndexPath:是調用最頻繁的方法。 復雜界面可采用異步繪制。 在大量圖片展示時,可以滑動時按需加載
秒殺系統優化思路
按鈕 clas 繼續 -i 火車票 時間 有意 用戶 頁面 一、秒殺業務為什麽這麽難做 秒殺系統,庫存只有一份,所有人會在集中的時間讀和寫這些數據。 例如: 小米手機每周二的秒殺,可能手機只有1萬部,但瞬間進入的流量可能是幾百幾千萬。 12306搶票,票是有限的,但是搶票
數據庫優化思路與方向
每隔一秒 order 驗證 自動 上線 mysql group by hand 連接 一、基礎優化mysql> show status like 'valus'connections //鏈接參數uptime //上線時間slow_queries /
阿裏秒殺系統架構優化思路
Java 架構師 程序員 秒殺系統 架構 秒殺業務為什麽難做 im系統,例如qq或者微博,每個人都讀自己的數據(好友列表、群列表、個人信息) 微博系統,每個人讀你關註的人的數據,一個人讀多個人的數據 秒殺系統,庫存只有一份,所有人會在集中的時間讀和寫這些數據,多個人讀一個數據例如:小米手
Java鎖優化思路及JVM實現
應用 num nal 高性能 thread collect 傳統 有一個 test 1. 鎖優化的思路和方法 這裏提到的鎖優化,是指在阻塞式的情況下,如何讓性能不要變得太差。但是再怎麽優化,一般來說性能都會比無鎖的情況差一點。 這裏要註意的是,在ReentrantLock中
數據庫優化思路
掃描 inno 執行 表達式 意義 upa 解決 style 實時數據 數據庫優化思路有如下幾個方面: 1、建立索引 2、分庫、分表、分區 3、數據庫引擎 mysql比較常用的數據庫引擎是:innodb 、myisam myisam查詢效率比innodb快
直播APP開發之iOS開發中的列表優化思路
uic 異步化 軟件公司 死機 直播 隱藏 屬性 頁面 底層 APP開發中,列表可能是平時我們打交道最多的UI控件之一,其重要性不言而喻,對其性能的優化同樣至關重要。而對於iOS開發,列表就是我們常說的UITableView / UICollectionView。在進行直播
這些Mysql基礎設計思路以及優化思路我都給你總結好了
%s mit 標記 總結 業務 增加 二叉 索引 基礎 1、定長和不定長要區分開 2、不常用的列和常用的列分開存 3、增加冗余,反範式化 4、btree索引,就是用樹形結構存儲在磁盤上,其中操作是用2分發,找一個中間點,然後把大比這個大的分在一邊,小的放在一邊,
Tomcat學習 之一 Tomcat優化思路 官方文件 通讀一遍才是正道
Tomcat優化思路 執行緒池內取一個 直到達到臨界點(最大連線數) 請求佇列(記事本)* 記下來那些來不及處理的請求 請求佇列滿了 就達到瓶頸了* Tomcat 使用Java 編寫 記憶體 CPU 在不改變業務程式碼的思路 :主要有下面三種思路 第一點 優化思路,增大
網站的優化思路
一、程式碼優化 開啟opcode快取,減少額外CPU和記憶體開銷,加快程式碼執行速度 儘量使用單引號替換雙引號 重模型輕控制器,減少冗餘 符合PHP-FIG規範和phpDoc規範,增強程式碼可讀性&可擴充套件性有利於團隊開發 二、資料庫優化 架構:主從複製、讀寫分離 設計
網站頁面的優化思路及細節
做SEO的人,大多都不會忽視網站的頁面優化,很多人把精力集中在網站首頁的這個頁面進行優化,網站頁面的優化也是網站內部優化的第一步,通過對頁面內容的佈局調整和設計,打造一個使用者喜歡且利於搜尋引擎抓取識別的頁面,從而獲得搜尋引擎排名上的提升,
MySQL 億級資料需求的優化思路(二),100億資料,1萬字段屬性的秒級檢索
最近在研究億級資料的時候,無意中看到了一個關於寫58同城的文章 https://blog.csdn.net/admin1973/article/details/55251499?from=timeline 其實上面講的version+ext的方式以及壓縮json的思路,對於我來講都可以看得懂
MySQL 億級資料需求的優化思路(一),交易流水記錄的查詢
對MySQL的效能和億級資料的處理方法思考,以及分庫分表到底該如何做,在什麼場景比較合適? 比如銀行交易流水記錄的查詢 限鹽少許,上實際實驗過程,以下是在實驗的過程中做一些操作,以及踩過的一些坑,我覺得坑對於讀者來講是非常有用的。 首先:建立一個現金流量表,交易歷史是各個金融
MySQL進階(七)MySQL優化思路
優化思路 (1)看錶的資料型別是否設定合理,有沒有遵循選取資料型別越簡單越小的原則 (2)表中的碎片是否整理 (3)表的統計資訊是否收集,只有統計資訊準確,執行計劃才可以幫助我們優化SQL (4)檢視執行計劃,檢查索引使用情況,沒有使用索引,考慮建立 (5)建立索引之
iOS 效能優化思路:介面離屏渲染、圖層混色
手機效能優化的重點,就是介面渲染。一般,計算任務都交給服務端。 介面渲染慢,就不好了。 常見問題,就是離屏渲染。 這裡用 NSShadow 處理掉 CALayer 的陰影屬性帶來的離屏渲染。 常見的離屏渲染程式碼: 繪製陰影, var label = UILabel()
SQL SERVER 優化思路之 SQL查詢語句的執行順序
要優化SQL 首先我們得了解SQL的執行順序: 例子:查詢語句中select from where group by having order by的執行順序 查詢語句中select from where group by having order by的執行順序 1.