最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql利用參數(shù)sql_safe_updates限制update/delete范圍詳解

 更新時(shí)間:2017年10月13日 10:39:27   作者:gxcherie  
這篇文章主要給大家介紹了關(guān)于mysql如何利用參數(shù)sql_safe_updates限制update/delete范圍的相關(guān)資料文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

前言

大家應(yīng)該都知道,我們?cè)趍ysql運(yùn)維中出現(xiàn)過(guò)不少因?yàn)閡pdate/delete條件錯(cuò)誤導(dǎo)致數(shù)據(jù)被誤更新或者刪除的case,為避免類似問(wèn)題的發(fā)生,可以用sql_safe_updates參數(shù)來(lái)對(duì)update/delete做限制。這個(gè)參數(shù)設(shè)置為on后,可防止因程序bug或者DBA手工誤操作導(dǎo)致的整個(gè)表被更新或者刪除的情況。下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

設(shè)置這個(gè)參數(shù)時(shí)需要注意一下幾點(diǎn):

       a、設(shè)置前需要確認(rèn)程序中所有的update和delete都符合sql_safe_updates的限制規(guī)范,不然程序會(huì)報(bào)錯(cuò)。

       b、5.0,5.1都是session級(jí)別的,5.6是global&session級(jí)別;低版本的數(shù)據(jù)庫(kù)只能在程序創(chuàng)建session時(shí)設(shè)置帶上set sql_safe_updates=on;高版本的數(shù)據(jù)庫(kù)可以直接set global set sql_safe_updates=on,設(shè)置完成后讓程序重連后生效。

限制規(guī)范:

示例表結(jié)構(gòu):

CREATE TABLE `delay_monitor` (
 `id` int(11) NOT NULL,
 `Ftime` datetime DEFAULT NULL,
 `Fgtid` varchar(128) NOT NULL DEFAULT '',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin​

1、update

a、報(bào)錯(cuò)條件:不帶where、帶where無(wú)索引、where條件為常量

     不帶where:update delay_monitor set Ftime=now();

      帶where無(wú)索引:update delay_monitor set Ftime=now() where Fgtid='test';

      where條件為常量:update delay_monitor set Ftime=now() where 1;

 b、執(zhí)行條件:帶where帶索引、不帶where+帶limit、帶where無(wú)索引+limit、帶where有索引+limit、where條件為常量+limit

       帶where帶索引:update delay_monitor set Ftime=now() where id=2;

       不帶where+帶limit: update delay_monitor set Ftime=now()  limit 1;

       帶where無(wú)索引+limit:update delay_monitor set Ftime=now() where Fgtid='test' limit 1;

       帶where有索引+limit:update delay_monitor set Ftime=now() where id =2 limit1;

        where條件為常量+limit:update delay_monitor set Ftime=now() where 1 limit 1;

 2、delete

 相對(duì)于update,delelte的限制會(huì)更為嚴(yán)格;where條件為常量或者為空,將不予執(zhí)行。

a、報(bào)錯(cuò)條件:不帶where、帶where無(wú)索引、不帶where+帶limit、where條件為常量、where條件為常量+limit

      不帶where:delete delay_monitor set Ftime=now();

      帶where無(wú)索引:delete delay_monitor set Ftime=now() where Fgtid='test';

      不帶where+帶limit: delete delay_monitor set Ftime=now()  limit 1;

      where條件為常量:delete delay_monitor set Ftime=now() where 1;

      where條件為常量+limit:delete delay_monitor set Ftime=now() where 1 limit 1;

b、執(zhí)行條件:帶where帶索引、帶where無(wú)索引+limit、帶where有索引+limt

      帶where帶索引:delete delay_monitor set Ftime=now() where id=2;

      帶where無(wú)索引+limit:delete delay_monitor set Ftime=now() where Fgtid='test' limit 1;

      帶where有索引+limit:delete delay_monitor set Ftime=now() where id =2 limit1;

總結(jié)如下表:key表示所有、const表示常量

操作  no where where key where nokey  limit where nokey+limit where key+limit      where const where const+limit
delete     NO YES NO NO YES YES NO     NO
update NO YES NO YES YES YES NO YES

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • k8s搭建mysql集群實(shí)現(xiàn)主從復(fù)制的方法步驟

    k8s搭建mysql集群實(shí)現(xiàn)主從復(fù)制的方法步驟

    本文是基于已有k8s環(huán)境下,介紹在k8s環(huán)境中部署mysql主從集群的實(shí)現(xiàn)步驟,對(duì)mysql學(xué)習(xí)有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2023-01-01
  • mysql自定義函數(shù)原理與用法實(shí)例分析

    mysql自定義函數(shù)原理與用法實(shí)例分析

    這篇文章主要介紹了mysql自定義函數(shù),結(jié)合實(shí)例形式分析了mysql自定義函數(shù)基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • MySQL取出隨機(jī)數(shù)據(jù)

    MySQL取出隨機(jī)數(shù)據(jù)

    MySQL 如何從表中取出隨機(jī)數(shù)據(jù) 以前在群里討論過(guò)這個(gè)問(wèn)題,比較的有意思.mysql的語(yǔ)法真好玩.
    2008-04-04
  • 窺探mysql存儲(chǔ)過(guò)程細(xì)節(jié)

    窺探mysql存儲(chǔ)過(guò)程細(xì)節(jié)

    這篇文章主要為大家詳細(xì)介紹了mysql存儲(chǔ)過(guò)程細(xì)節(jié),對(duì)mysql存儲(chǔ)過(guò)程感興趣的小伙伴們可以參考一下
    2016-03-03
  • MySQL索引失效原因以及SQL查詢語(yǔ)句不走索引原因詳解

    MySQL索引失效原因以及SQL查詢語(yǔ)句不走索引原因詳解

    今天領(lǐng)導(dǎo)在查詢報(bào)表時(shí),發(fā)現(xiàn)特別慢,于是引發(fā)一系列關(guān)于sql優(yōu)化的工作,下面這篇文章主要給大家介紹了關(guān)于MySQL索引失效原因以及SQL查詢語(yǔ)句不走索引原因的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • MySQL占用CPU過(guò)高,排查原因及解決方案

    MySQL占用CPU過(guò)高,排查原因及解決方案

    這篇文章主要介紹了MySQL占用CPU過(guò)高,排查原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • MySQL詳解如何優(yōu)化查詢條件

    MySQL詳解如何優(yōu)化查詢條件

    我們知道從MySQL表中使用SELECT語(yǔ)句來(lái)查詢數(shù)據(jù),如需有條件地從表中選取數(shù)據(jù),可將WHERE子句添加到SELECT語(yǔ)句中,本篇我們來(lái)看看怎樣優(yōu)化查詢條件
    2022-05-05
  • 解決mysql時(shí)區(qū)問(wèn)題導(dǎo)致錯(cuò)誤Incorrect datetime value: '1970-01-01 00:00:01'

    解決mysql時(shí)區(qū)問(wèn)題導(dǎo)致錯(cuò)誤Incorrect datetime value: &apo

    這篇文章主要介紹了解決mysql時(shí)區(qū)問(wèn)題導(dǎo)致錯(cuò)誤Incorrect datetime value: '1970-01-01 00:00:01',具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 詳解如何在阿里云上安裝mysql

    詳解如何在阿里云上安裝mysql

    mysql作為輕量級(jí)開(kāi)源數(shù)據(jù)庫(kù),在企業(yè)級(jí)的應(yīng)用中非常的廣泛。這篇文章主要介紹了詳解如何在阿里云上安裝mysql,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 淺談mysql 自定義函數(shù)

    淺談mysql 自定義函數(shù)

    本文主要是分析了一下在工作中寫的一個(gè)mysql的自定義函數(shù),很簡(jiǎn)單,僅僅是希望能對(duì)大家理解mysql自定義函數(shù)有所幫助。
    2014-09-09

最新評(píng)論

泽普县| 新兴县| 建德市| 竹北市| 全椒县| 天长市| 佳木斯市| 呈贡县| 晋中市| 铜梁县| 洛阳市| 海原县| 白河县| 会理县| 虞城县| 宾阳县| 宜春市| 阳原县| 武功县| 宁远县| 平乐县| 青神县| 惠安县| 尼勒克县| 谢通门县| 宣城市| 乌鲁木齐市| 仙游县| 乃东县| 密山市| 城口县| 嘉义市| 金山区| 大埔县| 蒙阴县| 福鼎市| 加查县| 阿图什市| 海盐县| 双牌县| 岳池县|