1. 程式人生 > >sql 簡單查詢修改

sql 簡單查詢修改

exp 簡單 char earch bsp 查詢 屏蔽 filter 存儲

1.group by order by
select  siteid count(*)as 1  from webdb where gathtrime between 2017-06-14 00:00:00 and 2017-06-14 23:59:59 group by siteid order by 1desc
2 in limit
 select * from sitemanage where  url in (select url from curl) limit 0,1000
3 時間
select* from sitemanage where siteid=12 and gathertime>
2017-06-12 00:00:00‘ order by gathertime desc 4 update sitemanage set updatestrategy=3 where id in (select siteid from webde where newurl!=(null) order by siteid ASC) 5update sitemanage set =replace(url,‘‘,‘‘) 6.SELECT id, url, configs FROM sitemanage WHERE (INSTR(configs, div.title>)>0) SELECT id, url, configs FROM sitemanage WHERE (INSTR(configs,
<filterreg>)=0) 7.SELECT * FROM sitemanage WHERE (INSTR(configs, h1)>0) ORDER BY url ASC LIMIT 2000,3283 8 update sitemanage set sitemanage.vname = (select vname from contrast where sitemanage.id=contrast.id) url中含有中文漢字 9SELECT url FROM sitemanage WHERE length(url )!=char_length(url) 10 SELECT id FROM siteid2 WHERE id NOT
in (SELECT id FROM metasearchconf_id WHERE id BETWEEN 94366 AND 97000) AND (id BETWEEN 94366 AND 97000) LIMIT 31 11 update sitemanage set updatestrategy=2, configs= replace (configs,<titlefilter><![CDATA[td.title]]></titlefilter>,<titlefilter><![CDATA[table.title>tr>td[align=center]]]></titlefilter>) WHERE url LIKE http://www.ln.gov.cn% #SELECT * from sitemanage where id in (SELECT id from contrast) #update sitemanage set updatestrategy=3 where id in (SELECT id from contrast) #select count(id) from sitemanage WHERE updatestrategy=3 and (id in (SELECT id from contrast))
查詢部分:
1、等值連接(from a,b)>外連接(from a left join b)>子查詢。
2、依照小結果驅集驅動大結果集的原則寫where條件的順序。
3、不使用not in ,可用 not exists代替。
4、盡量減少對字符串、時間類型字段用>、<,可用between and代替。 條件列中不可使用函數 例如:Year(publishtime)>2016。
5、多表查詢中數據量大時,用關聯代替 in,不要使用or 連接。
6、養成用explain 檢測語句效率
7、多表查詢最好的優化方式是建視圖,提高表的邏輯獨立性,還可以屏蔽原有表結構變化帶來的影響。


索引部分:
1、一個查詢只能用到一個索引,也就是where條件與索引配合使用的必要性。
2、選擇建立單列索引還是復合索引,復合索引同樣是依照從左到右的順序,而且一定要將使用頻率最高的字段放在左邊。若第一個沒有與條件匹配到,則其他字段的索引不會被使用。
3、關聯查詢時,條件兩邊字段類型相同並且都建有索引才會提速。
4、建過索引的字段默認值不要為null
5、Like ‘%XXX%’是不會用到索引的,但like ‘xxxx%’會被用到。
6、盡量不要對大文本或長字符串建索引,可以建前綴索引。
7、經常有刪除操作的表、或有大量長文本的表要定期進行碎片整理。用MyISAM引擎為例,我們對表做刪除操作時,data中的*.MYD文件的大小是不會變小,會影響我們的存儲與查詢。所以要定期做清理(OPTIMIZE TABLE `***`可多個表‘,’連接)
8\\表中時間段查詢語句
SELECT COUNT(url) FROM wise_web_docinfo WHERE gathertime BETWEEN ‘2016-05-30 00:00:00‘ AND ‘2016-05-30 23:00:00‘
9\\url 模糊查詢
SELECT * FROM sitemanage WHERE url LIKE ‘%0634%‘
10\\根據url字段,更改表中的其他字段
UPDATE sitemanage SET category=‘論壇D‘ ,updatestrategy=2 WHERE url LIKE ‘%0634%‘
11\\in條件,limit條件查詢
SELECT * FROM webdb WHERE url in(select url from curl ) LIMIT 0,1000
12\\時間查詢
SELECT?*?FROM?wise_web_docinfo?WHERE??site_id?=-7651?AND?gathertime?>‘2016-07-12?00:00:00‘?ORDER?BY?gathertime?DESC
13\\in
SELECT * FROM sitemanage WHERE id IN (SELECT siteid FROM waitlist WHERE newurl != ‘(NULL)‘ ORDER BY siteid ASC)
14
UPDATE sitemanage SET updatestrategy=3 WHERE id IN (SELECT siteid FROM waitlist WHERE newurl != ‘(NULL)‘ ORDER BY siteid ASC)
15
SELECT * FROM `thai_com` ORDER BY gathertime LIMIT 0, 10;
16
update `baidutieba` set url= replace (url,‘http://tieba.baidu.com//f?kw‘,‘http://tieba.baidu.com/f?kw‘)

sql 簡單查詢修改