中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql數據庫優化思路與方向是怎樣的

發布時間:2021-09-28 14:08:41 來源:億速云 閱讀:122 作者:柒染 欄目:MySQL數據庫

mysql數據庫優化思路與方向是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、基礎優化

mysql> show status like 'valus'

connections     //鏈接參數

uptime        //上線時間

slow_queries    //慢查詢次數

com_select

com_insert

com_update

com_delete

二、優化查詢:

mysql> explain select * from handb.fruits;

+----+-------------+--------+------+---------------+------+---------+------+------+-------+

| id | select_type | table  | type | possible_keys | key  | key_len | ref  | rows | Extra |

+----+-------------+--------+------+---------------+------+---------+------+------+-------+

|  1 | SIMPLE      | fruits | ALL  | NULL          | NULL | NULL    | NULL |    2 |       |

+----+-------------+--------+------+---------------+------+---------+------+------+-------+

table查詢表的次數

possible_keys索引

key當前索引

key_len索引長度

ref一起查詢的列或者常數

rows必要行數

Extra詳細信息

三、索引對查詢的影響

四、優化數據庫結構

1、拆分舊表形成新表

2、增加中間表

五、插入優化

1、禁用索引

mysql> alter table book disable keys;

mysql> alter table book enable keys;

2、禁用唯一查詢

mysql> set unique_checks=0 | 1 ;   //0關閉 1開啟

3、禁用外鍵檢查

mysql> set foreign_key_checks=0 |  1

4、禁用自動提交

mysql> set autocommit=0 | 1

六、分析檢查優化表

mysql> analyze table fruits;

type:status 常態

info信息 //有重復信息

note注意 //有null空值

warning警告 //超過過慢查詢時間

error錯誤 //表中有錯誤選項,不可用

七、檢查表

mysql> check table fruits fast;

QUICK:不掃描。不檢查錯誤的鏈接。

FAST:只檢查沒有被正確關閉的表。

CHANGED:只檢查上次檢查后被更改的表和沒有被正確關閉的表。

MEDIUM:掃描行,以驗證被刪除的鏈接是有效的,也可以計算各行的關鍵字效驗和,并使用計算出的效驗和驗證這一點。

EXTENDED:對每行的所有附件自進行一個全面的關鍵字查找,這可以確保表示百分百一致的,但是花費時間較長。

八、mysql服務器優化

緩沖區:希望被更改的數據在內存中駐留的時間更長而產生,主要是保留臟頁信息在內存中。不接受內存的管理,但是接受mysql程序的管理。

保證緩沖區大小:

[mysqld]

query_cache_size=512M

query_cache_type=1    //0表示不適用緩沖區。

1表示一旦開啟,所有的查詢都將使用緩沖區。如果不希望從緩沖區查詢,需要在select語句后增加選項no_sql_cache,表示當前查詢不適用緩沖區查詢。

2表示,只有在查詢的select是增加sql_cache才會從緩沖區查找。

key_buffer_size   //索引緩沖區大小。索引緩沖區的所有線程共享。他的大小取決于內存的大小。太大會導致頻繁換頁,也會降低系統性能。

table_cache //同時打開的表的個數。越大表示同時打開的表越多。太大影響系統性能。

sort_buffer_size //排序緩存大小,越大,表示排序速度越快。提高order by和group by的效率默認2M

read_buffer_size //每個表分配的緩沖區的大小。當線程連續掃描時,才會使用這個緩沖區。

read_md_buffer_size //每個線程保留的緩沖區的大小,與上面相似,但是用于特定順序才會使用。如果出現連續掃描與讀取,則調整該參數。set session read_md_buffer_size = n

innodb_buffer_pool_size //innodb和索引的最大緩存,越大查詢越快

max_connections //表示數據庫的最大連接數。主要浪費內存大小。(大于系統最大鏈接數,會死機)

innodb_flush_log_at_trx_commit //表示緩沖區數據什么時候寫入到日志中,并且將日志寫入到磁盤當中。該值有三個值:

0每隔一秒將數據寫入日志,再寫入硬盤。不安全,但是速度快

1每次提交事務的時候才寫入日志,再寫入硬盤。安全,但是速度慢

2每次提交事務的時候寫入日志,每隔一秒寫入硬盤。出現故障會丟失1-2s數據。

back_log //表示多少個請求可以存放在堆棧中。對TCP/IP的監聽列隊的大小。不接受新請求之前把數據放在緩存。只有希望一個短時間內有很多鏈接,才啟用此值。操作系統的列隊限制比mysql更大,不能超過,否則無效。

interactive_timeout //關閉服務器鏈接前的等待時間。

thread_buffer_size //每個需要排序的線程分配的緩沖區的大小,如果有很多新的線程,可以調高這個值。

wait_timeout //服務器關閉一個鏈接所等待的時間s,默認28800

看完上述內容,你們掌握mysql數據庫優化思路與方向是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

田阳县| 康定县| 新安县| 泸定县| 米林县| 绩溪县| 西丰县| 昭苏县| 治县。| 富川| 正安县| 龙州县| 余姚市| 通道| 桐城市| 兴安县| 东辽县| 竹山县| 阿坝| 丹阳市| 登封市| 宜宾市| 沽源县| 四子王旗| 大邑县| 平昌县| 广州市| 资源县| 临朐县| 安顺市| 平江县| 盱眙县| 塔河县| 夏河县| 荥经县| 西昌市| 东辽县| 八宿县| 鹿邑县| 民和| 云梦县|