oracle mysql sqlserver三種數據庫的查看索引和新增普通索引sql語句

參考:https://wenku.baidu.com/view/94ca5e3056270722192e453610661ed9ad5155a7.html
項目⽬上有關某個表的數據總是性能不達標,分析後發現有條關於按條件count()數量的sql導致好⼏個功能性能很慢。
於是,做成了再內存中維護這個count值,只在第⼀次查數據庫取值,後續相應的全部變更都更新內存,想着畢竟就⼀個值⽽已。
因爲這個表業務意義很⼤,字段內存很長,1百萬的記錄數,耗時15s左右。
也確實是通過這種⽅式,使得很多接⼝耗時達標。
但是,提交代碼,被review時,提醒說沒必要內存維護,⼀句count()⽽已,where 條件⾥的字段如果是查⽤的條件,直接加索引就好。
是啊,我爲啥要維護在內存中,因爲業務複雜,維護在內存中的值要和很多接⼝去更新,這是很有風險的。
驗證後發現,確實對where⾥的有意義字段,加索引後,性能⾮常棒,接近0.00 sec。
總結三種數據庫新增普通索引和查看索引的sql:
這⾥的表名map_model 字段名map_status map_key 都已脫敏處理

-- mysql 查看索引
show index from map_model;
-- mysql 創建普通索引
alter table model add index index_map_status(map_status)
alter table model add index index_mapKey(map_key
-- oracle 查看索引
select * from user_indexes where table_name = 'MAP_MODEL';
-- oracle 創建普通索引
create index index_map_status on model(map_status);
create index index_map_key on model(map_key);
--------------------------------------------------------
-- sqlserver 查看索引
select b.name  from sys.sysobjects a, sys.sysindexes b 
   where a.id = b.id  and a.name = 'map_model';
-- sqlserver 創建普通索引
create index index_status on model(status);
create index index_map_Key on model(map_key)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章