Mysql安装、配置、优化

一、 环境准备

1. 下载软件包
wget http://test.hexin.cn/software/mysql-5.7.9.tar.gz -P /usr/local/src/
wget http://test.hexin.cn/software/cmake-3.4.0.tar.gz -P /usr/local/src/
wget http://test.hexin.cn/software/boost_1_59_0.tar.gz -P /usr/local/src/

2. 安装基础软件
yum -y install make gcc-c++ bison-devel ncurses-devel

二、 安装配置MySQL

1. 编译安装cmake
tar zxvf /usr/local/src/cmake-3.4.0.tar.gz
cd /usr/local/src/cmake-3.4.0
./configure && make && make install

2. 编译安装boost(编译时不加boost,可以不用安装此软件)
tar zxvf /usr/local/src/boost_1_59_0.tar.gz -C /usr/local/boost/
cd /usr/local/boost/
./bootstrap.sh
./b2

3. 新增用户用户组
groupadd mysql
useradd mysql -g mysql -M -s /sbin/nologin

4. 编译安装MySQL
tar zxvf /usr/local/src/mysql-5.7.9.tar.gz
cd /usr/local/src/mysql-5.7.9/
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc - DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make
make install

三、常用配置参数

**● “—prefix” :**设定安装路径,默认为“ /usr/local” ;
**● “—datadir” :**设定MySQL数据文件存放路径;
**● “—with-charset” :**设定系统的默认字符集;
**● “—with-collation” :**系统默认的校验规则;
**● “—with-extra-charsets” :**出了默认字符集之外需要编译安装的字符集;
**● “—with-unix-socket-path” :**设定socket文件地址;
**● “—with-tcp-port” :**指定特定监听端口,默认为3306;
**● “—with-mysqld-user” :**指定运行mysqld的os用户,默认为mysql;
**● “—without-query-cache” :**禁用Query Cache功能;
**● “—without-innodb” :**禁用Innodb存储引擎;
**● “ --with-partition” :**在5.1版本中开启partition支持特性;
**● “ --enable-thread-safe-client” :**以线程方式编译客户端;
**● “—with-pthread” :**强制使用pthread 线程库编译;
**● “—with-named-thread-libs” :**指定使用某个特定的线程库编译;
**● “—without-debug” :**使用非debug模式;
● “—with-mysqld-ldflags” : mysqld的额外link参数;
● “—with-client-ldflags” : client的额外link参数;

四、MySQL优化

**1.**对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
**2.**应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0

**3.**应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
**4.**应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20

5. in 和 not in 也要慎用,否则会导致全表扫描,如:
select id from t where num in(1,2,3)
对于连续的数值,能用 between 就不要用 in 了:
select id from t where num between 1 and 3
**6.**下面的查询也将导致全表扫描:
select id from t where name like ‘%abc%’
**7.**应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where num/2=100
应改为:
select id from t where num=100*2
**8.**应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where substring(name,1,3)=‘abc’–name以abc开头的id
应改为:
select id from t where name like ‘abc%’
**9.**不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
**10.**在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,
否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。

以上为有关Mysql的安装、配置与优化的一些基本内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值