<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        MySQL里的變量分系統(tǒng)變量和用戶變量_MySQL

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 18:45:16
        文檔

        MySQL里的變量分系統(tǒng)變量和用戶變量_MySQL

        MySQL里的變量分系統(tǒng)變量和用戶變量_MySQL:bitsCN.com MySQL里的變量分系統(tǒng)變量和用戶變量 mysql里的變量分系統(tǒng)變量和用戶變量. 系統(tǒng)變量 其中系統(tǒng)變量,又分全局(global)和會話(session)兩種. 全局系統(tǒng)變量,主要影響整個mysql實例的全局設(shè)置. 大部分變量都是作為mysql的服務(wù)器調(diào)節(jié)參數(shù)存在.新增
        推薦度:
        導(dǎo)讀MySQL里的變量分系統(tǒng)變量和用戶變量_MySQL:bitsCN.com MySQL里的變量分系統(tǒng)變量和用戶變量 mysql里的變量分系統(tǒng)變量和用戶變量. 系統(tǒng)變量 其中系統(tǒng)變量,又分全局(global)和會話(session)兩種. 全局系統(tǒng)變量,主要影響整個mysql實例的全局設(shè)置. 大部分變量都是作為mysql的服務(wù)器調(diào)節(jié)參數(shù)存在.新增

        bitsCN.com

        MySQL里的變量分系統(tǒng)變量和用戶變量

        mysql里的變量分系統(tǒng)變量和用戶變量.

          系統(tǒng)變量

          其中系統(tǒng)變量,又分全局(global)和會話(session)兩種.

          全局系統(tǒng)變量,主要影響整個mysql實例的全局設(shè)置.

          大部分變量都是作為mysql的服務(wù)器調(diào)節(jié)參數(shù)存在.新增或修改這類變量, 會影響mysql的運行方式.

          比如: auto_increment_increment 代表序列的自增值, 默認為1

          另外, mysql中,只有一部分變量是支持運行時動態(tài)修改的.

          變量修改的作用范圍,是那些重新創(chuàng)建連接到mysql服務(wù)器的客戶端連接.

          如果你的連接是由應(yīng)用通過連接池來維護的,并且,是長連接的,那么,此時在服務(wù)器運行過程中,動態(tài)地修改全局變量對你是沒有什么影響的.

          通過全局變量, 我們可以想到一些應(yīng)用場景:

          1, 在存儲過程, 函數(shù), sql里,使用一些業(yè)務(wù)相關(guān)的全局變量.

          經(jīng)常編寫業(yè)務(wù)相關(guān)的存儲過程,函數(shù)的朋友, 可能會需要針對不同業(yè)務(wù),設(shè)置能共享訪問的全局變量.

          比如, 公司的總?cè)藬?shù),很多存儲過程都需要調(diào)用這個值,但是因為這個值,不是經(jīng)常會改變的,不需要每次都count.

          所以大多數(shù)人會考慮把它cache一把,那么mysql提供的全局變量,就是一個好的存儲場所.

          2, 數(shù)據(jù)庫配置中心

          首先,這不一定是一種好的解決方式, 特別是大型地分布式系統(tǒng).但是想到了,就跟大家分享一下.

          主要就是利用了三層,四層架構(gòu)的系統(tǒng), 必不可少的數(shù)據(jù)庫層來實現(xiàn)的.

          大家知道, 應(yīng)用的配置, 大多數(shù)是用配置文件或配置服務(wù)器來實現(xiàn), 前者需要跟著項目打包, 部署.

          后者, 只要在應(yīng)用初始化或運行時,去配置中心取配置就行了.(淘寶這邊兩者都在用)

          而數(shù)據(jù)庫的配置中心, 其實類似配置服務(wù)器, 只不過靈活運用了mysql的變量機制.

          它能繼承配置服務(wù)器的多數(shù)優(yōu)點, 但最大的特色就是在 sql, function , procedure 里都可以很方便地引用到.(相比用表的方式, 要方便一些)

          并且本身就具有緩存, 移植得話, mysql得導(dǎo)出也是很快.

          所以小系統(tǒng), 想快速得搭建一個配置中心,利用mysql感覺還是不錯的.

          調(diào)用語法:

          select * from user_info where id = @@global.admin_id — 例子,通過全局里配置的管理員id來取用戶信息

          以下是全局變量的一些常用命令,比較簡單:

          set global auto_increment_increment=1; — 設(shè)置序列的增長值

          show global variables; — 顯示所有的global變量

          show global variables like ‘%test%’ — 查詢包含test字符串的global變量

          會話系統(tǒng)變量, 主要用于在當(dāng)前客戶端連接的生命周期內(nèi).它的變量值是全局變量的一份拷貝.

          如果連接斷開, 對當(dāng)前會話變量所做修改都會被重置.

          比如, 服務(wù)器會話變量 autocommit 默認為 true , 而你在非常連的客戶端連接里設(shè)置了 false , 那么在執(zhí)行完sql后, 連接就會斷開. 此后,如果創(chuàng)建新的連接來執(zhí)行sql, autocommit又會默認 true.

          會話變量的使用場景與全局類似,只是生命周期不同, 因此可以用來

          統(tǒng)計同一連接內(nèi)請求sql次數(shù), sql類型等信息.

          session變量的一些常用操作:

          set session auto_increment_increment=1; — 設(shè)置序列的增長值

          show variables; or show session variables; — 如果不指明, 默認使用session變量

          show variables like ‘%test%’ or show session variables lile ‘%test%’ — 查詢包含test字符串的session變量

        用戶變量

          基于會話變量實現(xiàn)的, 可以暫存值, 并傳遞給同一連接里的下一條sql使用的變量.

          當(dāng)客戶端連接退出時,變量會被釋放.

          應(yīng)用場景:

          同一連接,未關(guān)閉情況下,幫你暫存一些計算結(jié)果.

          比如

          select @admin_id:=max(id) from user_info;

          select * from user_info where id = @admin_id

          以上兩條sql在同一connection中完成.

          另外,注意,用戶變量前只有1個@, 2個@是用于存取系統(tǒng)變量的

          業(yè)務(wù)相關(guān)的變量定義太多,無法區(qū)分系統(tǒng)全局變量?

          這類問題,可以通過mysql提供的結(jié)構(gòu)化系統(tǒng)變量來解決.

          他們有獨特的表示形式:

          instance_name.test_var

          比一般的變量多了一個instance_name.這樣,你就可以很方便地對他們進行分類,比如 app.test_var,就可以區(qū)別于系統(tǒng)的var了.

          PS: 其實,普通的系統(tǒng)變量,它也屬于結(jié)構(gòu)化變量,只不過他們默認隸屬于 default 這個 instance, 不需要顯示出來罷了.

          影響mysql性能的系統(tǒng)變量

          bulk_insert_buffer_size

          批量插入緩存大小, 這個參數(shù)是針對MyISAM存儲引擎來說的.適用于在一次性插入100-1000+條記錄時, 提高效率.默認值是8M.可以針對數(shù)據(jù)量的大小,翻倍增加.

          concurrent_insert

          并發(fā)插入, 當(dāng)表沒有空洞(刪除過記錄), 在某進程獲取讀鎖的情況下,其他進程可以在表尾部進行插入.

          值可以設(shè)0不允許并發(fā)插入,1當(dāng)表沒有空洞時,執(zhí)行并發(fā)插入,2.不管是否有空洞都執(zhí)行并發(fā)插入.

          默認是1.針對表的刪除頻率來設(shè)置.

          delay_key_write

          針對MyISAM存儲引擎,延遲更新索引.意思是說,update記錄時,先將數(shù)據(jù)up到磁盤,但不up索引,將索引存在內(nèi)存里,當(dāng)表關(guān)閉時,將內(nèi)存索引,寫到磁盤. 值為 0不開啟, 1開啟. 默認開啟.

          delayed_insert_limit, delayed_insert_timeout, delayed_queue_size

          延遲插入, 將數(shù)據(jù)先交給內(nèi)存隊列, 然后慢慢地插入.但是這些配置,不是所有的存儲引擎都支持, 目前來看, 常用的InnoDB不支持, MyISAM支持. 根據(jù)實際情況調(diào)大, 一般默認夠用了.

          expire_logs_days

          自動刪除超過指定天數(shù)的日志. 建議為0,表示“不自動刪除”.

          flush, flush_time

          是否啟用, 同步表數(shù)據(jù)到磁盤.以及自動同步的間隔時間.

          針對flush_time, 官方建議只在Windows 9x或Me,或有最小資源的系統(tǒng)中使用該選項.所以,建議關(guān)閉.

          ft_boolean_syntax, ft_max_word_len, ft_min_word_len,ft_query_expansion_limit, ft_stopword_file

          針對MyISAM設(shè)置的參數(shù), 全文搜索特性. 如果你不使用 FULLTEXT 索引,就不需要優(yōu)化了. 詳見mysql參考手冊.

          join_buffer_size

          用于表間關(guān)聯(lián)(join)的緩存大小.建議設(shè)為 131072.(128K)

          key_buffer_size

          索引塊緩存區(qū)大小, 針對MyISAM存儲引擎,該值越大,性能越好.但是超過操作系統(tǒng)能承受的最大值,反而會使mysql變得不穩(wěn)定.

          如果不是MyISAM存儲引擎,一般設(shè)置為 4-32M大小.

          key_cache_age_threshold, key_cache_block_size, key_cache_pision_limit

          鍵值緩存的相關(guān)設(shè)置.需要針對實際情況調(diào)優(yōu).只是針對MyISAM儲存引擎.

          large_pages

          是否啟動大頁面支持.意思是,可以一些緩存分配更大的空間.這個特性已經(jīng)被InnoDB, MyISAM等常用存儲引擎支持.

          low_priority_updates

          低優(yōu)先級更新.意思是, 所有的寫操作(表寫鎖), 包括update,delete,insert等都需要等待讀操作完成后才執(zhí)行 (表讀鎖解開).

          因為是針對表的鎖,所以,這里僅支持MyISAM.

          max_write_lock_count

          最大寫鎖數(shù)量.這個變量的含義是, 當(dāng)寫鎖達到一定數(shù)量后, 就不限制讀鎖, 允許一部分讀鎖進入.(可以讀數(shù)據(jù)了,否則需要等待寫鎖釋放后,才能讀)

          因為是針對表的鎖,所以,這里僅支持MyISAM.

          preload_buffer_size

          重載索引時分配的緩沖區(qū)大小, 該變量僅支持MyISAM.

          read_buffer_size, read_rnd_buffer_size

          每個線程連續(xù)掃描時為掃描的每個表分配的緩沖區(qū)的大小(字節(jié))。如果進行多次連續(xù)掃描,可能需要增加該值, 默認值為131072。

          sort_buffer_size

          每個排序線程分配的緩沖區(qū)的大小。增加該值可以加快ORDER BY或GROUP BY操作.默認數(shù)值是2097144(2M),建議加大到 16777208 (16M)。

          timed_mutexes

          顯示mutexes的統(tǒng)計信息, 默認關(guān)閉OFF

          tmp_table_size

          臨時表的大小,在未超過大小之前進行的操作是在內(nèi)存中的, 當(dāng)超過后,mysql會自動轉(zhuǎn)換到硬盤上.

        bitsCN.com

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        MySQL里的變量分系統(tǒng)變量和用戶變量_MySQL

        MySQL里的變量分系統(tǒng)變量和用戶變量_MySQL:bitsCN.com MySQL里的變量分系統(tǒng)變量和用戶變量 mysql里的變量分系統(tǒng)變量和用戶變量. 系統(tǒng)變量 其中系統(tǒng)變量,又分全局(global)和會話(session)兩種. 全局系統(tǒng)變量,主要影響整個mysql實例的全局設(shè)置. 大部分變量都是作為mysql的服務(wù)器調(diào)節(jié)參數(shù)存在.新增
        推薦度:
        標簽: 用戶 影響 mysql
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: a一级爱做片免费| 日韩免费码中文在线观看| 久久精品视频免费看| 亚洲AV无码成人精品区天堂| 精品一卡2卡三卡4卡免费视频| 国产美女亚洲精品久久久综合| 一级成人毛片免费观看| 亚洲午夜av影院| 中国好声音第二季免费播放| 奇米影视亚洲春色| 久草免费福利视频| 7777久久亚洲中文字幕蜜桃 | 国产无遮挡又黄又爽免费网站| 相泽亚洲一区中文字幕| 免费在线看黄的网站| 亚洲综合无码一区二区三区| 亚洲精品视频免费看| 亚洲欧美日韩综合俺去了| 又黄又爽一线毛片免费观看| 国产精品免费大片一区二区| 亚洲精品乱码久久久久久蜜桃不卡| 99视频精品全部免费观看| 亚洲一区二区三区精品视频| 日韩免费毛片视频| 亚欧乱色国产精品免费视频| 亚洲黄色在线观看视频| 午夜电影免费观看| 中文字幕一区二区三区免费视频| 久久久久久久亚洲Av无码| 性色av无码免费一区二区三区| 未满十八私人高清免费影院| 国产成A人亚洲精V品无码性色 | 高潮内射免费看片| 亚洲AV无码成人精品区天堂| 久久电影网午夜鲁丝片免费| 一级毛片免费播放男男| 亚洲精品中文字幕无乱码| 在线观看亚洲免费| 久久久久国产免费| 午夜亚洲乱码伦小说区69堂| 亚洲a在线视频视频|