以MySQL 8.0 來說,通過查看 8.0 的官方文檔得知,8.0 的臨時(shí)表空間分為會(huì)話臨時(shí)表空間和全局臨時(shí)表空間,會(huì)話臨時(shí)表空間存儲(chǔ)用戶創(chuàng)建的臨時(shí)表和當(dāng) InnoDB 配置為磁盤內(nèi)部臨時(shí)表的存儲(chǔ)引擎時(shí)由優(yōu)化器創(chuàng)建的內(nèi)部臨時(shí)表,當(dāng)會(huì)話斷開連接時(shí),其臨時(shí)表空間將被截?cái)嗖⑨尫呕爻刂校灰簿褪钦f,在 8.0 中有一個(gè)專門的會(huì)話臨時(shí)表空間,當(dāng)會(huì)話被殺掉后,可以回收磁盤空間;而原來的 ibtmp1 是現(xiàn)在的全局臨時(shí)表空間,存放的是對(duì)用戶創(chuàng)建的臨時(shí)表進(jìn)行更改的回滾段,在 5.7 中 ibtmp1 存放的是用戶創(chuàng)建的臨時(shí)表和磁盤內(nèi)部臨時(shí)表;

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供平昌網(wǎng)站建設(shè)、平昌做網(wǎng)站、平昌網(wǎng)站設(shè)計(jì)、平昌網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、平昌企業(yè)網(wǎng)站模板建站服務(wù),十余年平昌做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
也就是在 8.0 和 5.7 中 ibtmp1 的用途發(fā)生了變化,5.7 版本臨時(shí)表的數(shù)據(jù)存放在 ibtmp1 中,在 8.0 版本中臨時(shí)表的數(shù)據(jù)存放在會(huì)話臨時(shí)表空間,如果臨時(shí)表發(fā)生更改,更改的 undo 數(shù)據(jù)存放在 ibtmp1 中;
實(shí)驗(yàn)驗(yàn)證:將之前的查詢結(jié)果保存成臨時(shí)表,對(duì)應(yīng)會(huì)話是 45 號(hào),通過查看對(duì)應(yīng)字典表,可知 45 號(hào)會(huì)話使用了 temp_8.ibt 這個(gè)表空間,通過把查詢保存成臨時(shí)表,可以用到會(huì)話臨時(shí)表空間,如下圖:
下一步殺掉 45 號(hào)會(huì)話,發(fā)現(xiàn) temp_8.ibt 空間釋放了,變?yōu)榱顺跏即笮。瑺顟B(tài)為非活動(dòng)的,證明在 mysql8.0 中可以通過殺掉會(huì)話來釋放臨時(shí)表空間。
總結(jié):在 mysql5.7 時(shí),殺掉會(huì)話,臨時(shí)表會(huì)釋放,但是僅僅是在 ibtmp 文件里標(biāo)記一下,空間是不會(huì)釋放回操作系統(tǒng)的。如果要釋放空間,需要重啟數(shù)據(jù)庫(kù);在 mysql8.0 中可以通過殺掉會(huì)話來釋放臨時(shí)表空間。
一、mysql的優(yōu)化思路
mysql的優(yōu)化分為兩方面:
1. 服務(wù)器使用前的優(yōu)化
2. 服務(wù)使用中的優(yōu)化
二、mysql的基礎(chǔ)優(yōu)化步驟
1. 硬件級(jí)優(yōu)化
(1). 最好mysql自己使用一臺(tái)物理服務(wù)器
(2). 內(nèi)存和CPU方面,根據(jù)需求給予mysql服務(wù)器足夠大的內(nèi)存和足夠多的CPU核數(shù)
(3). 避免使用Swap交換分區(qū)–交換時(shí)從硬盤讀取的它的速度很慢,有的DBA安裝系統(tǒng)時(shí)就不裝swap分區(qū)
(4). 如果是mysql主庫(kù),硬盤可以選用比較好的高速硬盤,系統(tǒng)用SSD固態(tài)硬盤,數(shù)據(jù)盤用sas替代sata硬盤,將操作系統(tǒng)和數(shù)據(jù)分區(qū)分開
(5). mysql產(chǎn)生的日志與數(shù)據(jù)庫(kù)也放到不同的磁盤分區(qū)上面
(6). mysql數(shù)據(jù)庫(kù)硬盤格式化時(shí),可以指定更小的硬盤塊
(7). 關(guān)于做RAID方面,主庫(kù)盡量做成RAID10,既提高了數(shù)據(jù)的讀寫速度也提到了數(shù)據(jù)的安全性
(8). 服務(wù)器雙線雙電,保障服務(wù)器運(yùn)行穩(wěn)定,不會(huì)因?yàn)橥蝗粩嚯娪绊憳I(yè)務(wù)和損壞磁盤數(shù)據(jù)
2. mysql數(shù)據(jù)庫(kù)設(shè)計(jì)優(yōu)化
(1). 根據(jù)需求選擇正確的存儲(chǔ)引擎,比如說讀的特別猛就用MySAM,如果對(duì)事務(wù)性要求高就用InnoDB
(2). 設(shè)置合理的字段類型和字段長(zhǎng)度,比如說你這個(gè)字段就20多個(gè)字段你設(shè)置成VARCHAR(255)就是對(duì)磁盤空間的浪費(fèi)
(3). 默認(rèn)值盡可能的使用 NOT NULL,如果空值太多對(duì)mysql的查詢會(huì)有影響,尤其是在查詢語句編寫上面
(4). 盡量少的使用VARCHAR,TEXT,BLOB這三個(gè)字段
(5). 添加適當(dāng)索引(index) [四種: 普通索引、主鍵索引、唯一索引unique、全文索引]
(6). 不要濫用索引,大表索引,小表不索引
(7). 表的設(shè)計(jì)合理化(符合3NF)
3. mysql配置參數(shù)的優(yōu)化
這里是mysql5.5版本的配置文件
vi my.cnf
[client]
port = 3306 #mysql客戶端連接時(shí)的默認(rèn)端口
socket = /tmp/mysql.sock #與mysql服務(wù)器本地通信所使用的socket文件路徑
default-character-set = utf8 #指定默認(rèn)字符集為utf8
[mysql]
no-auto-rehash #auto-rehash是自動(dòng)補(bǔ)全的意思,就像我們?cè)趌inux命令行里輸入命令的時(shí)候,使用tab鍵的功能是一樣的,這里是默認(rèn)的不自動(dòng)補(bǔ)全
default-character-set = utf8 #指定默認(rèn)字符集為utf8
[mysqld]
user = mysql
port = 3306
character-set-server = utf8 #設(shè)置服務(wù)器端的字符編碼
socket = /tmp/mysql.sock
basedir = /application/mysql
datadir = /mysqldata
skip-locking #避免MySQL的外部鎖定,減少出錯(cuò)幾率增強(qiáng)穩(wěn)定性。
open_files_limit = 10240 #MySQL打開的文件描述符限制,默認(rèn)最小1024;當(dāng)open_files_limit沒有被配置的時(shí)候,比較max_connections*5和ulimit -n的值,哪個(gè)大用哪個(gè),當(dāng)open_file_limit被配置的時(shí)候,比較open_files_limit和max_connections*5的值,哪個(gè)大用哪個(gè)。
back_log = 500 #back_log參數(shù)的值指出在MySQL暫時(shí)停止響應(yīng)新請(qǐng)求之前的短時(shí)間內(nèi)多少個(gè)請(qǐng)求可 以被存在堆棧中。 如果系統(tǒng)在一個(gè)短時(shí)間內(nèi)有很多連接,則需要增大該參數(shù)的值,該參數(shù)值指定到來的TCP/IP連接的偵聽隊(duì)列的大小。不同的操作系統(tǒng)在這個(gè)隊(duì)列大小上有它自 己的限制。 試圖設(shè)back_log高于你的操作系統(tǒng)的限制將是無效的。默認(rèn)值為50。對(duì)于Linux系統(tǒng)推薦設(shè)置為小于512的整數(shù)。
max_connections = 800 #MySQL的最大連接數(shù),如果服務(wù)器的并發(fā)連接請(qǐng)求量比較大,建議調(diào)高此值,以增加并行連接數(shù)量,當(dāng)然這建立在機(jī)器能支撐的情況下,因?yàn)槿绻B接數(shù)越多, 介于MySQL會(huì)為每個(gè)連接提供連接緩沖區(qū),就會(huì)開銷越多的內(nèi)存,所以要適當(dāng)調(diào)整該值,不能盲目提高設(shè)值。可以過’conn%’通配符查看當(dāng)前狀態(tài)的連接 數(shù)量,以定奪該值的大小。
max_connect_errors = 3000 #對(duì)于同一主機(jī),如果有超出該參數(shù)值個(gè)數(shù)的中斷錯(cuò)誤連接,則該主機(jī)將被禁止連接。如需對(duì)該主機(jī)進(jìn)行解禁,執(zhí)行:FLUSH HOST。
table_cache = 614 #物理內(nèi)存越大,設(shè)置就越大.默認(rèn)為2402,調(diào)到512-1024最佳
external-locking = FALSE #使用–skip-external-locking MySQL選項(xiàng)以避免外部鎖定。該選項(xiàng)默認(rèn)開啟
max_allowed_packet =8M #設(shè)置最大包,限制server接受的數(shù)據(jù)包大小,避免超長(zhǎng)SQL的執(zhí)行有問題 默認(rèn)值為16M,當(dāng)MySQL客戶端或mysqld服務(wù)器收到大于max_allowed_packet字節(jié)的信息包時(shí),將發(fā)出“信息包過大”錯(cuò)誤,并關(guān)閉連接。對(duì)于某些客戶端,如果通信信息包過大,在執(zhí)行查詢期間,可能會(huì)遇“丟失與MySQL服務(wù)器的連接”錯(cuò)誤。默認(rèn)值16M。
sort_buffer_size = 6M #用于表間關(guān)聯(lián)緩存的大小,查詢排序時(shí)所能使用的緩沖區(qū)大小。注意:該參數(shù)對(duì)應(yīng)的分配內(nèi)存是每連接獨(dú)占,如果有100個(gè)連接,那么實(shí)際分配的總共排序緩沖區(qū)大小為100 × 6 = 600MB。所以,對(duì)于內(nèi)存在4GB左右的服務(wù)器推薦設(shè)置為6-8M。
join_buffer_size = 6M #聯(lián)合查詢操作所能使用的緩沖區(qū)大小,和sort_buffer_size一樣,該參數(shù)對(duì)應(yīng)的分配內(nèi)存也是每連接獨(dú)享。
thread_cache_size = 100 #服務(wù)器線程緩存這個(gè)值表示可以重新利用保存在緩存中線程的數(shù)量,當(dāng)斷開連接時(shí)如果緩存中還有空間,那么客戶端的線程將被放到緩存中,如果線程重新被請(qǐng)求, 那么請(qǐng)求將從緩存中讀取,如果緩存中是空的或者是新的請(qǐng)求,那么這個(gè)線程將被重新創(chuàng)建,如果有很多新的線程,增加這個(gè)值可以改善系統(tǒng)性能.通過比較 Connections 和 Threads_created 狀態(tài)的變量,可以看到這個(gè)變量的作用
thread_concurrency = 8 #設(shè)置thread_concurrency的值的正確與否, 對(duì)mysql的性能影響很大, 在多個(gè)cpu(或多核)的情況下,錯(cuò)誤設(shè)置了thread_concurrency的值, 會(huì)導(dǎo)致mysql不能充分利用多cpu(或多核), 出現(xiàn)同一時(shí)刻只能一個(gè)cpu(或核)在工作的情況。thread_concurrency應(yīng)設(shè)為CPU核數(shù)的2倍. 比如有一個(gè)雙核的CPU, 那么thread_concurrency的應(yīng)該為4; 2個(gè)雙核的cpu, thread_concurrency的值應(yīng)為8,屬重點(diǎn)優(yōu)化參數(shù)
query_cache_size = 2M #指定MySQL查詢緩沖區(qū)的大小,在數(shù)據(jù)庫(kù)寫入量或是更新量也比較大的系統(tǒng),該參數(shù)不適合分配過大。而且在高并發(fā),寫入量大的系統(tǒng),建系把該功能禁掉。
query_cache_limit = 1M #默認(rèn)是4KB,設(shè)置值大對(duì)大數(shù)據(jù)查詢有好處,但如果你的查詢都是小數(shù)據(jù)查詢,就容易造成內(nèi)存碎片和浪費(fèi)
query_cache_min_res_unit = 2k #MySQL參數(shù)中query_cache_min_res_unit查詢緩存中的塊是以這個(gè)大小進(jìn)行分配的,使用下面的公式計(jì)算查詢緩存的平均大小,根據(jù)計(jì)算結(jié)果設(shè)置這個(gè)變量,MySQL就會(huì)更有效地使用查詢緩存,緩存更多的查詢,減少內(nèi)存的浪費(fèi)。
default_table_type = InnoDB #默認(rèn)表的引擎為InnoDB
thread_stack = 192K #限定用于每個(gè)數(shù)據(jù)庫(kù)線程的棧大小。默認(rèn)設(shè)置足以滿足大多數(shù)應(yīng)用transaction_isolation = READ-COMMITTED #設(shè)定默認(rèn)的事務(wù)隔離級(jí)別.可用的級(jí)別如下:
READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE,1.READ UNCOMMITTED-讀未提交2.READ COMMITTE-讀已提交3.REPEATABLE READ -可重復(fù)讀4.SERIALIZABLE -串行
tmp_table_size = 246M #tmp_table_size 的默認(rèn)大小是 32M。如果一張臨時(shí)表超出該大小,MySQL產(chǎn)生一個(gè) The table tbl_name is full 形式的錯(cuò)誤,如果你做很多高級(jí) GROUP BY 查詢,增加 tmp_table_size 值。
max_heap_table_size = 246M #內(nèi)存表,內(nèi)存表不支持事務(wù),內(nèi)存表使用哈希散列索引把數(shù)據(jù)保存在內(nèi)存中,因此具有極快的速度,適合緩存中小型數(shù)據(jù)庫(kù),但是使用上受到一些限制
long_query_time = 1 #記錄時(shí)間超過1秒的查詢語句
log_long_format #
log-error = /logs/error.log #開啟mysql錯(cuò)誤日志,該選項(xiàng)指定mysqld保存錯(cuò)誤日志文件的位置
log-slow-queries = /logs/slow.log #慢查詢?nèi)罩疚募窂?/p>
pid-file = /pids/mysql.pid
log-bin = /binlog/mysql-bin #binlog日志位置以及binlog的名稱
relay-log = /relaylog/relay-bin #relaylog日志位置以名稱
binlog_cache_size = 1M #binlog_cache_size 就是滿足兩點(diǎn)的:一個(gè)事務(wù),在沒有提交(uncommitted)的時(shí)候,產(chǎn)生的日志,記錄到Cache中;等到事務(wù)提交(committed)需要提交的時(shí)候,則把日志持久化到磁盤,默認(rèn)是32K。
max_binlog_cache_size = 32M #binlog緩存最大使用的內(nèi)存
max_binlog_size = 2M #一個(gè)binlog日志的大小
expire_logs_days = 7 #保留7天的binlog
key_buffer_size = 124M #索引緩存大小: 它決定了數(shù)據(jù)庫(kù)索引處理的速度,尤其是索引讀的速度
read_buffer_size = 16M #MySql讀入緩沖區(qū)大小。對(duì)表進(jìn)行順序掃描的請(qǐng)求將分配一個(gè)讀入緩沖區(qū),MySql會(huì)為它分配一段內(nèi)存緩沖區(qū)。read_buffer_size變量控制這一緩沖區(qū)的大小。如果對(duì)表的順序掃描請(qǐng)求非常頻繁,并且你認(rèn)為頻繁掃描進(jìn)行得太慢,可以通過增加該變量值以及內(nèi)存緩沖區(qū)大小提高其性能
read_rnd_buffer_size = 2M #MySQL的隨機(jī)讀緩沖區(qū)大小。當(dāng)按任意順序讀取行時(shí)(例如,按照排序順序),將分配一個(gè)隨機(jī)讀緩存區(qū)。進(jìn)行排序查詢時(shí),MySQL會(huì)首先掃描一遍該緩沖,以避免磁盤搜索,提高查詢速度,如果需要排序大量數(shù)據(jù),可適當(dāng)調(diào)高該值。但MySQL會(huì)為每個(gè)客戶連接發(fā)放該緩沖空間,所以應(yīng)盡量適當(dāng)設(shè)置該值,以避免內(nèi)存開銷過大
bulk_insert_buffer_size = 1M #批量插入數(shù)據(jù)緩存大小,可以有效提高插入效率,默認(rèn)為8M
myisam_sort_buffer_size = 1M #MyISAM表發(fā)生變化時(shí)重新排序所需的緩沖
myisam_max_sort_file_size = 10G #MySQL重建索引時(shí)所允許的最大臨時(shí)文件的大小 (當(dāng) REPAIR, ALTER TABLE 或者 LOAD DATA INFILE). 如果文件大小比此值更大,索引會(huì)通過鍵值緩沖創(chuàng)建(更慢)
myisam_repair_threads = 1 #如果一個(gè)表?yè)碛谐^一個(gè)索引, MyISAM 可以通過并行排序使用超過一個(gè)線程去修復(fù)他們.這對(duì)于擁有多個(gè)CPU以及大量?jī)?nèi)存情況的用戶,是一個(gè)很好的選擇.
myisam_recover #自動(dòng)檢查和修復(fù)沒有適當(dāng)關(guān)閉的 MyISAM 表
lower_case_table_names = 1 #讓mysql不區(qū)分大小寫
skip-name-resolve #禁用DNS解析,連接速度會(huì)快很多。不過,這樣的話就不能在MySQL的授權(quán)表中使用主機(jī)名了而只能用ip格式。
#slave-skip-errors = 1032,1062 #這是選填項(xiàng)讓slave庫(kù)跳過哪些錯(cuò)誤繼續(xù)同步
#replicate-ignore-db=mysql #選填,同步時(shí)候哪個(gè)數(shù)據(jù)庫(kù)不同步設(shè)置
server-id = 1
innodb_additional_mem_pool_size = 4M #InnoDB 存儲(chǔ)的數(shù)據(jù)目錄信息和其它內(nèi)部數(shù)據(jù)結(jié)構(gòu)的內(nèi)存池大小。應(yīng)用程序里的表越多,你需要在這里分配越多的內(nèi)存,默認(rèn)是2M
innodb_buffer_pool_size = 2048M #這對(duì)Innodb表來說非常重要。Innodb相比MyISAM表對(duì)緩沖更為敏感。MyISAM可以在默 認(rèn)的 key_buffer_size 設(shè)置下運(yùn)行的可以,然而Innodb在默認(rèn)的 設(shè)置下卻跟蝸牛似的。由于Innodb把數(shù)據(jù)和索引都緩存起來,無需留給操作系統(tǒng)太多的內(nèi)存,因此如果只需要用Innodb的話則可以設(shè)置它高達(dá) 70-80% 的可用內(nèi)存。一些應(yīng)用于 key_buffer 的規(guī)則有 — 如果你的數(shù)據(jù)量不大,并且不會(huì)暴增,那么無需把 innodb_buffer_pool_size 設(shè)置的太大了
innodb_file_io_threads = 4 #文件IO的線程數(shù),一般為 4
innodb_thread_concurrency = 8 #你的服務(wù)器CPU有幾個(gè)就設(shè)置為幾,建議用默認(rèn)一般為8
innodb_flush_log_at_trx_commit = 2 #默認(rèn)為1,如果將此參數(shù)設(shè)置為1,將在每次提交事務(wù)后將日志寫入磁盤。為提供性能,可以設(shè)置為0或2,但要承擔(dān)在發(fā)生故障時(shí)丟失數(shù)據(jù)的風(fēng)險(xiǎn)。設(shè)置為0表示事務(wù)日志寫入日志文件,而日志文件每秒刷新到磁盤一次。設(shè)置為2表示事務(wù)日志將在提交時(shí)寫入日志,但日志文件每次刷新到磁盤一次。
innodb_log_buffer_size = 2M #此參數(shù)確定些日志文件所用的內(nèi)存大小,以M為單位。緩沖區(qū)更大能提高性能,但意外的故障將會(huì)丟失數(shù)據(jù).MySQL開發(fā)人員建議設(shè)置為1-8M之間
innodb_log_file_size = 4M #此參數(shù)確定數(shù)據(jù)日志文件的大小,以M為單位,更大的設(shè)置可以提高性能,但也會(huì)增加恢復(fù)故障數(shù)據(jù)庫(kù)所需的時(shí)間
innodb_log_files_in_group = 3 #為提高性能,MySQL可以以循環(huán)方式將日志文件寫到多個(gè)文件。推薦設(shè)置為3M
innodb_max_dirty_pages_pct = 90 #Buffer_Pool中Dirty_Page所占的數(shù)量,直接影響InnoDB的關(guān)閉時(shí)間。參數(shù) innodb_max_dirty_pages_pct可以直接控制了Dirty_Page在Buffer_Pool中所占的比率,而且幸運(yùn)的是 innodb_max_dirty_pages_pct是可以動(dòng)態(tài)改變的。所以,在關(guān)閉InnoDB之前先調(diào)小,強(qiáng)制數(shù)據(jù)塊Flush一段時(shí)間,則能夠大大縮短MySQL關(guān)閉的時(shí)間。
innodb_lock_wait_timeout = 120 #InnoDB 有其內(nèi)置的死鎖檢測(cè)機(jī)制,能導(dǎo)致未完成的事務(wù)回滾。但是,如果結(jié)合InnoDB使用MyISAM的lock tables 語句或第三方事務(wù)引擎,則InnoDB無法識(shí)別死鎖。為消除這種可能性,可以將innodb_lock_wait_timeout設(shè)置為一個(gè)整數(shù)值,指示 MySQL在允許其他事務(wù)修改那些最終受事務(wù)回滾的數(shù)據(jù)之前要等待多長(zhǎng)時(shí)間(秒數(shù))
innodb_file_per_table = 0 #獨(dú)享表空間(關(guān)閉)
[mysqldump]
quick
max_allowed_packet = 16M
4. 架構(gòu)優(yōu)化
(1). 前端用memcached,redis等緩存分擔(dān)數(shù)據(jù)庫(kù)壓力
(2). 數(shù)據(jù)庫(kù)讀寫分離,負(fù)載均衡
(3). 數(shù)據(jù)庫(kù)分庫(kù)分表
(4). 存儲(chǔ)可采取分布式
5. 后期優(yōu)化
主要是多觀察,后期就是維護(hù)工作了,觀察服務(wù)器負(fù)載是需要添加硬件了,還是有語句有問題啊,還是參數(shù)要修改了。
6. 查詢優(yōu)化(摘抄別人的)
63. 使用慢查詢?nèi)罩救グl(fā)現(xiàn)慢查詢。
64. 使用執(zhí)行計(jì)劃去判斷查詢是否正常運(yùn)行。
65. 總是去測(cè)試你的查詢看看是否他們運(yùn)行在最佳狀態(tài)下 –久而久之性能總會(huì)變化。
66. 避免在整個(gè)表上使用count(*),它可能鎖住整張表。
67. 使查詢保持一致以便后續(xù)相似的查詢可以使用查詢緩存。
68. 在適當(dāng)?shù)那樾蜗率褂肎ROUP BY而不是DISTINCT。
69. 在WHERE, GROUP BY和ORDER BY子句中使用有索引的列。
70. 保持索引簡(jiǎn)單,不在多個(gè)索引中包含同一個(gè)列。
71. 有時(shí)候MySQL會(huì)使用錯(cuò)誤的索引,對(duì)于這種情況使用USE INDEX。
72. 檢查使用SQL_MODE=STRICT的問題。
73. 對(duì)于記錄數(shù)小于5的索引字段,在UNION的時(shí)候使用LIMIT不是是用OR.
74. 為了 避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE ,不要用UPDATE去實(shí)現(xiàn)。
75. 不要使用 MAX,使用索引字段和ORDER BY子句。
76. 避免使用ORDER BY RAND().
77。LIMIT M,N實(shí)際上可以減緩查詢?cè)谀承┣闆r下,有節(jié)制地使用。
78。在WHERE子句中使用UNION代替子查詢。
79。對(duì)于UPDATES(更新),使用 SHARE MODE(共享模式),以防止獨(dú)占鎖。
80。在重新啟動(dòng)的MySQL,記得來溫暖你的數(shù)據(jù)庫(kù),以確保您的數(shù)據(jù)在內(nèi)存和查詢速度快。
81。使用DROP TABLE,CREATE TABLE DELETE FROM從表中刪除所有數(shù)據(jù)。
82。最小化的數(shù)據(jù)在查詢你需要的數(shù)據(jù),使用*消耗大量的時(shí)間。
83。考慮持久連接,而不是多個(gè)連接,以減少開銷。
84。基準(zhǔn)查詢,包括使用服務(wù)器上的負(fù)載,有時(shí)一個(gè)簡(jiǎn)單的查詢可以影響其他查詢。
85。當(dāng)負(fù)載增加您的服務(wù)器上,使用SHOW PROCESSLIST查看慢的和有問題的查詢。
86。在開發(fā)環(huán)境中產(chǎn)生的鏡像數(shù)據(jù)中 測(cè)試的所有可疑的查詢。
數(shù)據(jù)鎖死導(dǎo)致內(nèi)存增加,這個(gè)是你程序設(shè)計(jì)的問題
解決比較麻煩,要分析,執(zhí)行的所有操作
檢查在什么時(shí)間什么操作后產(chǎn)生什么效果,這個(gè)和執(zhí)行順序也有關(guān)系
close只是你放開了鏈接而已
網(wǎng)頁(yè)題目:mysql怎么改內(nèi)存大小 mysql怎么把字體調(diào)大
當(dāng)前路徑:http://www.yijiale78.com/article48/docjeep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計(jì)、微信小程序、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)