IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁數(shù)據(jù)庫MYSQL → MySQL數(shù)據(jù)庫優(yōu)化SQL的三個方法

MySQL數(shù)據(jù)庫優(yōu)化SQL的三個方法

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(1)

以下的文章主要向大家描述的是MySQL數(shù)據(jù)庫優(yōu)化,SQL的實際操作步驟,我們講述的是MySQL數(shù)據(jù)庫優(yōu)化,SQL的三步驟,以下就是這三步驟的具體操作的詳細(xì)描述,望你瀏覽之后會對其有所收獲。

MySQL數(shù)據(jù)庫優(yōu)化--SQL第一步:

1:磁盤尋道能力,以高速硬盤(7200轉(zhuǎn)/秒),理論上每秒尋道7200次.這是沒有辦法改變的,優(yōu)化的方法是----用多個硬盤,或者把數(shù)據(jù)分散存儲.

2:硬盤的讀寫速度,這個速度非常的快,這個更容易解決--可以從多個硬盤上并行讀寫.

3:cpu.cpu處理內(nèi)存中的數(shù)據(jù),當(dāng)有相對內(nèi)存較小的表時,這是最常見的限制因素.

4:內(nèi)存的限制.當(dāng)cpu需要超出適合cpu緩存的數(shù)據(jù)時,緩存的帶寬就成了內(nèi)存的一個瓶頸---不過現(xiàn)在內(nèi)存大的驚人,一般不會出現(xiàn)這個問題.

MySQL數(shù)據(jù)庫優(yōu)化--SQL第二步:?(本人使用的是學(xué)校網(wǎng)站的linux平臺(Linux ADVX.Mandrakesoft.com 2.4.3-19mdk ))

1:調(diào)節(jié)服務(wù)器參數(shù)

用shell>MySQL(和PHP搭配之最佳組合)d-help這個命令聲廠一張所有MySQL(和PHP搭配之最佳組合)選項和可配置變量的表.輸出以下信息:

possible variables for option--set-variable(-o) are:

back_log current value:5 //要求MySQL(和PHP搭配之最佳組合)能有的連接數(shù)量.back_log指出在MySQL(和PHP搭配之最佳組合)暫停接受連接的時間內(nèi)有多少個連接請求可以被存在堆棧中

connect_timeout current value:5 //MySQL(和PHP搭配之最佳組合)服務(wù)器在用bad handshake(不好翻譯)應(yīng)答前等待一個連接的時間

delayed_insert_timeout current value:200 //一個insert delayed在終止前等待insert的時間

delayed_insert_limit current value:50 //insert delayed處理器將檢查是否有任何select語句未執(zhí)行,如果有,繼續(xù)前執(zhí)行這些語句

delayed_queue_size current value:1000 //為insert delayed分配多大的隊

flush_time current value:0 //如果被設(shè)置為非0,那么每個flush_time 時間,所有表都被關(guān)閉

interactive_timeout current value:28800 //服務(wù)器在關(guān)上它之前在洋交互連接上等待的時間

join_buffer_size current value:131072 //用與全部連接的緩沖區(qū)大小

key_buffer_size current value:1048540 //用語索引塊的緩沖區(qū)的大小,增加它可以更好的處理索引

lower_case_table_names current value:0 //

long_query_time current value:10 //如果一個查詢所用時間大于此時間,slow_queried計數(shù)將增加

max_allowed_packet current value:1048576 //一個包的大小

max_connections current value:300 //允許同時連接的數(shù)量

max_connect_errors current value:10 //如果有多于該數(shù)量的中斷連接,將阻止進(jìn)一步的連接,可以用flush hosts來解決

max_delayed_threads current value:15 //可以啟動的處理insert delayed的數(shù)量

max_heap_table_size current value:16777216 //

max_join_size current value:4294967295 //允許讀取的連接的數(shù)量

max_sort_length current value:1024 //在排序blob或者text時使用的字節(jié)數(shù)量

max_tmp_tables current value:32 //一個連接同時打開的臨時表的數(shù)量

max_write_lock_count current value:4294967295 //指定一個值(通常很小)來啟動MySQL(和PHP搭配之最佳組合)d,使得在一定數(shù)量的write鎖定之后出現(xiàn)read鎖定

net_buffer_length current value:16384 //通信緩沖區(qū)的大小--在查詢時被重置為該大小

query_buffer_size current value:0 //查詢時緩沖區(qū)大小

record_buffer current value:131072 //每個順序掃描的連接為其掃描的每張表分配的緩沖區(qū)的大小

sort_buffer current value:2097116 //每個進(jìn)行排序的連接分配的緩沖區(qū)的大小

table_cache current value:64 //為所有連接打開的表的數(shù)量

thread_concurrency current value:10 //

tmp_table_size current value:1048576 //臨時表的大小

thread_stack current value:131072 //每個線程的大小

wait_timeout current value:28800 //服務(wù)器在關(guān)閉它3之前的一個連接上等待的時間

根據(jù)自己的需要配置以上信息會對你幫助.

MySQL數(shù)據(jù)庫優(yōu)化--SQL第三:

1:如果你在一個數(shù)據(jù)庫中創(chuàng)建大量的表,那么執(zhí)行打開,關(guān)閉,創(chuàng)建(表)的操作就會很慢. 2:MySQL(和PHP搭配之最佳組合)使用內(nèi)存

a: 關(guān)鍵字緩存區(qū)(key_buffer_size)由所有線程共享

b: 每個連接使用一些特定的線程空間.一個棧(默認(rèn)為64k,變量thread_stack),一個連接緩沖區(qū)(變量net_buffer_length)和一個結(jié)果緩沖區(qū)(net_buffer_length).特定情況下,連接緩沖區(qū)和結(jié)果緩沖區(qū)被動態(tài)擴(kuò)大到max_allowed_packet.

c:所有線程共享一個基存儲器

d:沒有內(nèi)存影射

e:每個做順序掃描的請求分配一個讀緩沖區(qū)(record_buffer)

f:所有聯(lián)結(jié)均有一遍完成并且大多數(shù)聯(lián)結(jié)甚至可以不用一個臨時表完成.最臨時的表是基于內(nèi)存的(heap)表

g:排序請求分配一個排序緩沖區(qū)和2個臨時表

h:所有語法分析和計算都在一個本地存儲器完成

i:每個索引文件只被打開一次,并且數(shù)據(jù)文件為每個并發(fā)運(yùn)行的線程打開一次

j:對每個blob列的表,一個緩沖區(qū)動態(tài)的被擴(kuò)大以便讀入blob值

k:所有正在使用的表的表處理器被保存在一個緩沖器中并且作為一個fifo管理.

l:一個MySQL(和PHP搭配之最佳組合)admin flush-tables命令關(guān)閉所有不在使用的表并且在當(dāng)前執(zhí)行的線程結(jié)束時標(biāo)記所有在使用的表準(zhǔn)備關(guān)閉

3:MySQL(和PHP搭配之最佳組合)鎖定表

MySQL(和PHP搭配之最佳組合)中所有鎖定不會成為死鎖. wirte鎖定: MySQL(和PHP搭配之最佳組合)的鎖定原理:a:如果表沒有鎖定,那么鎖定;b否則,把鎖定請求放入寫鎖定隊列中

read鎖定: MySQL(和PHP搭配之最佳組合)的鎖定原理:a:如果表沒有鎖定,那么鎖定;b否則,把鎖定請求放入讀鎖定隊列中

有時候會在一個表中進(jìn)行很多的select,insert操作,可以在一個臨時表中插入行并且偶爾用臨時表的記錄更新真正的表

max_tmp_tables current value:32 //一個連接同時打開的臨時表的數(shù)量

max_write_lock_count current value:4294967295 //指定一個值(通常很小)來啟動MySQL(和PHP搭配之最佳組合)d,使得在一定數(shù)量的write鎖定之后出現(xiàn)read鎖定

net_buffer_length current value:16384 //通信緩沖區(qū)的大小--在查詢時被重置為該大小

query_buffer_size current value:0 //查詢時緩沖區(qū)大小

record_buffer current value:131072 //每個順序掃描的連接為其掃描的每張表分配的緩沖區(qū)的大小

sort_buffer current value:2097116 //每個進(jìn)行排序的連接分配的緩沖區(qū)的大小

table_cache current value:64 //為所有連接打開的表的數(shù)量

thread_concurrency current value:10 //

tmp_table_size current value:1048576 //臨時表的大小

thread_stack current value:131072 //每個線程的大小

wait_timeout current value:28800 //服務(wù)器在關(guān)閉它3之前的一個連接上等待的時間

根據(jù)自己的需要配置以上信息會對你幫助.

以上的相關(guān)內(nèi)容就是對MySQL數(shù)據(jù)庫優(yōu)化--SQL的介紹,望你能有所收獲。

關(guān)鍵詞標(biāo)簽:MySQL數(shù)據(jù)庫優(yōu)化

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 Xbox Game Pass Xbox Game Pass 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL常用維護(hù)管理工具 MySQL常用維護(hù)管理工具 MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié) MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié)

相關(guān)下載

    人氣排行 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié) Mysql 1045錯誤解決辦法 MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法 MySQL導(dǎo)出導(dǎo)入命令的用例 MySQL連接字符串的實際操作步驟匯總 MySQL無法啟動、無法停止各種解決方法總結(jié) 三種常用的MySQL建表語句