国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySQL 數據庫優化的具體方法說明

MySQL 數據庫優化的具體方法說明

2019-11-07 16:28mysql教程網 Mysql

以下的文章主要講述的是實現MySQL數據庫簡單實用優化的具體方法,以及在實際操作中有哪些具體操作步驟是值得我們大家注意的。

以下的文章主要描述的是MySQL數據庫簡單實用優化的具體方法的實現,中包括如何定期的表進行分析與檢查, 以及如何正確對表進行定期的優化,以下就是具體方案的描述,希望在你今后的學習中會有所幫助。 

1、定期分析表和檢查表 

分析表的語法如下: 

復制代碼代碼如下:

ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tb1_name[, tbl_name]... 


以上語句用于分析和存儲表的關鍵字分布,分析的結果將可以使得系統得到準確的統計信息,使得SQL能夠生成正確的執行計劃。如果用戶感覺實際執行計劃并不是預期的執行計劃,執行一次分析表可能會解決問題。在分析期間,使用一個讀取鎖定對表進行鎖定。這對于MyISAM,DBD和InnoDB表有作用。 

例如分析一個數據表 

復制代碼代碼如下:

analyze table table_name



檢查表的語法如下: 
 

復制代碼代碼如下:

CHECK TABLE tb1_name[,tbl_name]...[option]...option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}



檢查表的作用是檢查一個或多個表是否有錯誤,CHECK TABLE 對MyISAM 和 InnoDB表有作用,對于MyISAM表,關鍵字統計數據被更新 

CHECK TABLE 也可以檢查視圖是否有錯誤,比如在視圖定義中被引用的表不存在。 


2. 定期優化表 

優化表的語法如下: 

復制代碼代碼如下:

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tb1_name [,tbl_name]...



如果刪除了表的一大部分,或者如果已經對含有可變長度行的表(含有 VARCHAR、BLOB或TEXT列的表)進行更多更改,則應使用OPTIMIZE TABLE命令來進行表優化。這個命令可以將表中的空間碎片進行合并,并且可以消除由于刪除或者更新造成的空間浪費,但OPTIMIZE TABLE 命令只對MyISAM、 BDB 和InnoDB表起作用。 

例如: optimize table table_name 


注意: analyze、check、optimize執行期間將對表進行鎖定,因此一定注意要在MySQL數據庫不繁忙的時候執行相關的操作。 

常用的SQL優化 

我們在開發的時候常常用到的SQL語句,無非是INSERT、GROUPBY等等。對于這些SQL語句,我們怎么進行優化? 

1. 大批量插入數據 

當用load命令導入數據的時候,適當的設置可以提高導入的速度。 
對于MyISAM存儲引擎的表,可以通過如下方式快速的導入大量的數據 

復制代碼代碼如下:


ALTER TABLE tb1_name DISABLE KEYS; 
loading the data 
ALTER TABLE tb1_name ENABLE KEYS; 


DISABLE KEYS 和 ENABLE KEYS 用來打開或者關閉MyISAM表非唯一索引的更新。在導入大量的數據到一個非空的MyISAM表時,通過設置這兩個命令,可以提高導入的效率。 
對于導入大量的數據到一個空的MyISAM表時,默認就是先導入數據然后才創建索引的,索引不用進行設置。 

復制代碼代碼如下:

load data infile '/home/mysql/text_txt' into table text



對于InnoDB類型的表,這種方式不能提高導入數據的效率,但也有幾種針對InnoDB類型的表進行優化的方式。 

1. 因為InnoDB類型的表式按照主鍵的順序保存的,所以將導入的數據按照主鍵的順序排序,可以有效提高導入數據的效率。 

2. 在導入數據前執行 SET UNIQUE_CHECKS=0,關閉唯一性校驗,在導入結束后執行SET UNIQUE_CHECKS=1,恢復唯一性校驗,可以提高導入的效率。 

3. 如果應用使用自動提交的方式,建議在導入前執行SET AUTOCOMMIT=0,關閉自動提交,導入結束后執行SET AUTOCOMMIT=1,打開自動提交,也可以提高導入效率。 

優化INSERT語句 

當進行數據INSERT的時候,可以考慮采用以下幾種方式進行優化 

1. 如果同時從一個客戶插入很多行,盡量使用多個值表的INSERT語句,這種方式將大大縮短客戶端與MySQL數據庫的鏈接、關閉等消耗,使得效率比分開執行的單個INSERT語句快. 

例如: 

復制代碼代碼如下:


insert into test values(1,2) 
insert into test values(3,4) 
insert into test values(5,6) 


將上面三句改為:insert into test values(1,2),(3,4),(5,6)...... 

2. 如果從不同客戶插入很多行,能通過使用INSERT DELAYED 語句得到更高的速度。 

DELAYED 的含義是讓INSERT 語句馬上執行,其實數據都被放在內存的隊列中,并沒有真正寫入磁盤,這比每條語句分別插入要快得多;LOW_PRIORITY剛好相反,在所有其他用戶對表的讀寫完后才進行插入。 

3. 將索引文件和數據文件分在不同的磁盤上存放 

4. 如果進行批量插入,可以增加bulk_insert_buffer_size變量值的方法來提高速度,但是,這只能對于MyISAM表使用。 

5. 當從一個文本文件中裝載一個表時,使用LOAD DATA INFILE。 這通常比使用很多insert語句快20倍左右。 

下面是mysql 性能優化的一些其它需要注意的地方,大家結合和,充分發揮mysql的性能。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产精品18久久久久久久久久久久 | 精品一区二区三区成人精品 | 国产一区二区精品在线 | 久久人人爽人人爽人人片亚洲 | 色婷婷国产精品综合在线观看 | 亚洲精品国产第一综合99久久 | 性免费网站 | 国产精品久久久久久久久久免费 | 精品久久av | 成人一区二区三区在线观看 | 日日摸天天做天天添天天欢 | 欧美精品一二区 | www中文字幕 | 国产毛片毛片 | 亚洲精品国产电影 | 成人黄页在线观看 | 日韩欧美国产精品 | 国产精品1区 | 国产高清精品在线 | 91在线影视 | 嫩草视频在线 | 成人精品一区二区 | 亚洲第一视频 | 在线视频中文字幕 | 国产亚洲精 | 婷婷综合久久 | 欧美激情精品久久久久久 | 国产伦精品一区二区三区四区视频 | 国产精品18久久久 | 黄网站色大毛片 | 亚洲国产aⅴ成人精品无吗 久久综合久久久 | 日韩在线一区二区三区免费视频 | 亚洲欧美日韩国产 | 国色天香成人网 | 亚洲精品一二三 | 亚洲电影在线观看 | 精品视频在线播放 | 日韩三级电影网 | 精品视频在线播放 | 久久久高清 | 国产嫩草91 |