日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sql server insert 锁表_SQL简单优化

發(fā)布時(shí)間:2025/3/21 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql server insert 锁表_SQL简单优化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

網(wǎng)絡(luò)搜索概念

1、 避免出現(xiàn) 大小寫不統(tǒng)一的情況

錯(cuò)誤的寫法:

SELECT id From t where name = 'zhangsan';

正確的寫法

SELECT id FROM t WHERE name = 'zhangsan';

在我們看來沒有區(qū)別,只是大小寫不一樣而已,但mysql認(rèn)為是兩個(gè)不同的SQL,要進(jìn)行解析,生成兩個(gè)不同的執(zhí)行計(jì)劃。

因此,必須要使相同的查詢語句保持一致。

2、 根據(jù)字段類型,調(diào)整相應(yīng)的查詢條件

比如 age 類型為 int, 那么

錯(cuò)誤的寫法

# 這是字符串的寫法,雖然也能查詢出數(shù)據(jù),但查詢效率很低。SELECT name FROM t WHERE age = '18';

正確的寫法

SELECT name FROM t WHERE age = 18;

3、 避免出現(xiàn)對(duì)字段進(jìn)行NULL的判斷,這個(gè)會(huì)使MySQL放棄索引進(jìn)行全表掃描。

錯(cuò)誤的寫法

SELECT id FROM t WHERE name IS NULL;

這里需要注意的是,在數(shù)據(jù)庫設(shè)計(jì)的時(shí)候要注意不要給數(shù)據(jù)庫留NULL, 盡量使用NOT NULL 進(jìn)行填充,比如: varchar用""填充。

4、 不要使用 SELECT * FROM 查詢,應(yīng)使用具體的字段查詢,盡量不要返回?zé)o用的字段。

5、 WHERE 語句優(yōu)化:

單獨(dú)把WHERE 條件放在一起;

5.1、相同場景的WHERE條件應(yīng)該相同,例如:

如果創(chuàng)建的所有是 【name,age】,下面的查詢

SELECT id FROM t WHERE name = 'zhangsan' AND age = 18;SELECT id FROM t WHERE age = 19 AND name = 'zhangsan';

雖然查詢結(jié)果一樣,但第二個(gè)查詢肯定會(huì)造成索引用不到的情況。

5.2、盡量不要在查詢中用到OR, 如果一個(gè)字段有索引,另一個(gè)沒有,就會(huì)造成全表掃描的。

SELECT id FROM t WHERE num=10 OR name = 'zhangsan';

可以這樣寫:

SELECT id FROM t WHERE num = 10UNION ALL SELECT id FROM t WHERE name = 'zhangsan';

5.3、盡量不要在WHERE語句中用 != ,<>, 會(huì)導(dǎo)致全表掃描

5.4、IN 和 NOT IN 也要注意,否則會(huì)導(dǎo)致全表掃描,可以用 EXISTS 代替 IN(當(dāng)然,前表小于后表時(shí)用)

SELECT num FROM a WHERE EXISTS(SELECT 1 FROM b WHERE num=a.num);

5.5、避免在WHERE子句中對(duì)字段進(jìn)行操作,包括表達(dá)式,函數(shù)等。

錯(cuò)誤的寫法

SELECT id FROM t WHERE num/2 = 100;

正確的寫法

SELECT id FROM t WHERE num = 100*2;

6、 避免使用很復(fù)雜的SQL, 如果太復(fù)雜,查詢會(huì)變慢,并且過幾天你看不懂,別人也看不懂。越簡單的SQL被重用的可能性越高。復(fù)雜的SQL只要一個(gè)字符發(fā)生變化,mysql就會(huì)重新去解析。

一般我的查詢嵌套不會(huì)超過兩層。

解決辦法:臨時(shí)表 暫存中間結(jié)果

優(yōu)點(diǎn)

1、簡化SQL

2、暫存臨時(shí)結(jié)果,二次利用,避免多次掃描主表,減少鎖,減少阻塞,提高并發(fā)性能。

缺點(diǎn): 慎重使用臨時(shí)表可以極大的提高系統(tǒng)性能(網(wǎng)上說的),這個(gè)目前沒有意識(shí)到,以后優(yōu)化的時(shí)候可以考慮。

目前我的查詢語句中用到了大量的臨時(shí)表,臨時(shí)表存儲(chǔ)在內(nèi)存中,查詢效率顯著提高。

臨時(shí)表顯式刪除,先 TERUNCATE table ,然后 DROP table ,這樣可以避免系統(tǒng)表的較長時(shí)間鎖表,釋放內(nèi)存,減少系統(tǒng)開銷。

7、對(duì)于多張大數(shù)據(jù)量的表JOIN,要先分頁再JOIN,否則邏輯讀會(huì)很高,性能很差。

8、進(jìn)行大量INSERT操作時(shí),先禁用索引,待插入完成后在打開,避免插入的時(shí)候進(jìn)行索引排序。

禁用索引:

ALTER TABLE t DISABLE KEYS;

INSERT操作完成后重新打開索引即可:

ALTER TABLE t ENABLE KEYS;

三、索引創(chuàng)建

1、盡量使用聯(lián)合索引,在常用的字段以及可辨識(shí)大的字段上創(chuàng)建索引

2、與WHERE,GROUP BY,ORDER BY 等結(jié)合,按順序創(chuàng)建索引,這就需要相同場景的WHERE條件應(yīng)該相同,因?yàn)榫酆纤饕龝r(shí)最左前綴原則,只有WHERE子句順序相同的時(shí)候才能用到。

3、不要在每個(gè)列上創(chuàng)建索引,索引不要超過五個(gè)。

4、不要在建立的索引的數(shù)據(jù)列上進(jìn)行下列操作:

避免對(duì)索引字段進(jìn)行計(jì)算操作

避免在索引字段上使用not,<>,!=

避免在索引列上使用IS NULL和IS NOT NULL

避免在索引列上出現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換

避免在索引字段上使用函數(shù)

避免建立索引的列中使用空值。

5、索引的建立要經(jīng)過嚴(yán)格的評(píng)估。

四、視圖也可以使用索引

網(wǎng)上大量的文章講視圖不能用到索引,但業(yè)務(wù)場景必須要用到視圖,就考慮視圖也利用索引。

視圖的建立:避免使用全部建立視圖,應(yīng)根據(jù)業(yè)務(wù)場景,配合表的索引,創(chuàng)建視圖。不關(guān)心視圖用不用到索引,只要我們創(chuàng)建視圖的查詢語句能用到索引,就可以了。

這樣視圖就可以用到索引了,親測有效。

總結(jié)

以上是生活随笔為你收集整理的sql server insert 锁表_SQL简单优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 毛片88 | 嫩草影院一区二区三区 | 亚洲视频中文字幕在线观看 | 欧美a√在线 | 伊人国产在线视频 | 69xx欧美| 黄色大片免费网站 | 嫩草视频在线免费观看 | 四虎视频| 国产一区精品无码 | 日本三级韩国三级美三级91 | 黄色在线一区 | 波多野在线 | 人人干人人爽 | 女女百合高h喷汁呻吟玩具 www.亚洲一区 | 黄色免费网站视频 | av在线成人| 91麻豆网| av成人在线电影 | 国产精品久久久91 | 色欧美片视频在线观看 | 男女插插网站 | 撸撸在线视频 | 欧美色图亚洲视频 | 18成人免费观看网站下载 | 国产精品夫妻 | 精品一区在线 | 国产精品4p| 久热免费视频 | 亚洲一级一区 | 国产又粗又猛又大爽 | 国产日本视频 | 午夜精品视频一区 | 蜜桃视频在线观看网站 | 久久精品人妻一区二区三区 | 91国内| 亚洲免费av网站 | 小镇姑娘国语版在线观看免费 | 亚洲18在线看污www麻豆 | 欧美怡红院视频 | 超碰成人97| 精品乱码一区二区三区 | 日本亲近相奷中文字幕 | 久久日本精品字幕区二区 | 久草免费福利视频 | 青青青在线视频免费观看 | 吃奶摸下的激烈视频 | 一道本无吗一区 | 日本免费三片在线播放 | 熟女高潮一区二区三区视频 | 伊人天堂在线 | 亚洲色图在线观看视频 | 欧美日韩精品一区 | 欧美爽爽爽 | 黄色特级视频 | 狠狠综合久久 | 国产精品拍拍 | xxxxxx欧美| 成人图片小说 | 69sex久久精品国产麻豆 | 欧美日本道| 色播一区二区 | 欧美精品一二区 | 国产不卡av在线播放 | 国产a级片视频 | 性欧美ⅹxxxx极品护士 | 黑人巨大国产9丨视频 | 欧美孕交视频 | 精品无码久久久久久久久 | 亚洲精品第一 | 欧美成人aaa片一区国产精品 | 国产深夜福利在线 | 欧美性受视频 | 国产香蕉97碰碰碰视频在线观看 | 欧美日韩免费观看视频 | 一区二区内射 | 豆花免费跳转入口官网 | 欧美性猛交一区二区三区精品 | 欧美日本成人 | 日韩xx视频 | 能免费看18视频网站 | 亚洲欧洲成人精品久久一码二码 | 特级黄毛片 | 午夜三级影院 | 亚洲综合婷婷久久 | 污漫网站| 91爱国产| 日韩喷潮 | 性猛交xxxx乱大交孕妇印度 | 亚洲欧洲综合av | 国产精品videossex国产高清 | 熟妇高潮精品一区二区三区 | 91原创国产 | 天堂网2020| av一级久久 | 在线视频a | 天天操天天碰 | 91精品人妻一区二区三区果冻 | 色图一区|