Linux系統下MYSQL原始碼安裝的效能考量

黄舟
發布: 2016-12-14 15:22:33
原創
1208 人瀏覽過

原始碼安裝的效能考量:
17.3.1 去掉不需要的模組:
原始碼安裝由於可以靈活的進行資料庫的客製化編譯,因此有更強的彈性。某些編譯選項可以大大增強我們資料庫的效能。
執行下列指令可以看到所有編譯的設定選項:
shell> ./configure --help
如果只安裝客戶端,可以執行以下指令:
shell> ./configure --without-server
如果你不想要位於「/usr/local/var」目錄下面的日誌(log)檔案和資料庫,使用類似下列configure 指令的一個:
local/mysql/tmp/mysql.sock
17.3.2 只選擇要使用的字元集:
改變安裝後的預設字元集和排序規則:
shell> ./configure -- with-charset=CHARSET
./configure --with-collat​​ion=COLLATION
選擇需要安裝的字元集:
shell>./ configure --with-extra-charsets=LIST
list 可以是下面任何一項:
空格間隔的一系列字元集名
complex -,以包含所有無法動態裝載的字元集
all –,以將所有字元集包含進二進位
17.3.3 使用pgcc 編譯:
pgcc 2.90.29 或更新版:
CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc
CXXFLFLAGS="-O3 -mpent -double
-felide-constructors -fno- exceptions -fno-rtti"
17.3.4 使用靜態編譯以提高效能:
shell>./configure --with-client-ldflags=-all-static
--with- mysqld-ldflags=-all-static
17.4 mysql 升級
方法1 最簡單,適合於任何儲存引擎(不一定速度最快)
安裝新資料庫
將舊資料庫匯出為文本,匯入到新資料庫上
shell> mysqladmin -h hostname -P port -u user -p passwd create db_name
shell> mysqldump --opt db_name | mysql -h hostname -P port -u user -p
passwd db_name
註:如果網路較慢,可以在匯出選項中加上--compress 來減少網路傳輸
升級權限表
將原始庫中的mysql 資料庫目錄全部cp 過來覆蓋新庫中mysql 資料庫
在shell 裡面執行mysql_fix_privilege_tables 指令升級權限資料庫
在shell 裡面執行mysql_fix_privilege_tables 指令升級權限資料庫
在shell 裡面執行mysql_fix_privilege_tables 指令升級權限資料庫
在shell 裡面執行mysql_fix_privilege_tables 指令升級權限資料庫
在shell 內執行mysql_fix_privilege_tables 指令升級權限資料庫
>mysql_fix_privilege_tables
shell服務
方法2 適合於任何儲存引擎,速度較快
安裝新資料庫
舊庫中建立儲存輸出檔案的目錄並備份資料庫:
shell> mkdir DUMPDIR
shell>mysqldump --tab=DUMPDIR db_name
將DUMPDIR 目錄將DUMPDIR 目錄將DUMPDIR 目錄將DUMPDIR 目錄中的檔案轉移到目標機上對應的目錄中並將檔案裝載到MySQL:
shell> mysqladmin create db_name # create database
shell> cat DUMPDIR/*.sql | mysql db_name # create tables in dataIR
> mygolm funcport /*.txt # load data into tables
(實際測試的時候,發現txt 要放到data 下才能執行,否則提示文件找不到)
升級權限表
將原庫中的mysql 資料庫目錄全部cp 過來覆蓋新庫中mysql 資料庫在shell 裡面執行mysql_fix_privilege_tables 指令升級權限表
shell>mysql_fix_privilege_tables
重啟資料庫服務
方法3 適合myisam 表,速度最快
將新資料庫中安裝的原始資料庫中的資料目錄.frm,.MYD,MYI)cp 到新庫下的對應目錄下升級權限表

將原庫中的mysql 資料庫目錄全部cp 過來覆蓋新庫中mysql 資料庫在shell 裡面執行mysql_fix_privilege_tables 指令升級權限表

shell> mysql_fix_privilege_tables

flush tables 或重新啟動資料庫服務生效🎜🎜更多相關文章請關注PHP中文網(www.php.cn)! 🎜
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!