Rumah  >  Artikel  >  pangkalan data  >  Linux系统下MYSQL源码安装的性能考虑

Linux系统下MYSQL源码安装的性能考虑

黄舟
黄舟asal
2016-12-14 15:22:331205semak imbas

源码安装的性能考虑:
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-collation=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 \
CXXFLAGS="-O3 -mpentiumpro -mstack-align-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
重启数据库服务
方法2 适合于任何存储引擎,速度较快
安装新数据库
旧库中创建保存输出文件的目录并备份数据库:
shell> mkdir DUMPDIR
shell>mysqldump --tab=DUMPDIR db_name
将DUMPDIR 目录中的文件转移到目标机上相应的目录中并将文件装载到MySQL:
shell> mysqladmin create db_name # create database
shell> cat DUMPDIR/*.sql | mysql db_name # create tables in database
shell> mysqlimport db_name DUMPDIR/*.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)!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn