Mysql安装、配置、优化
Mysql的安装
首先我们要寻找资源我们需要从MySQL开发者网站下载Yum仓库文件,导入Yum库后,一个简单的yumupdate命令将确保你运行在MySQL5.6的最新发布版上,包括一些安全特性的更新。Yum同时也将确保导入相关依赖库,这些都将使我们的安装过程简单化。进入http://dev.mysql.com/downloads/repo/,下载RedHat Enterprise Linux 6 / Oracle Linux 6版。
下载完成后将Yum库导入到你的本地:
yum localinstall mysql-community-release-el6-5.noarch.rpm
可以通过下面的命令来确认这个仓库被成功添加:
yum repolist enabled | grep mysql.-community.
这个Yum库包含了MySQLServer,MySQL工作台管理工具以及ODBC驱动,现在可以通过下面的命令简单地安装MySQLServer:
yum install mysql-community-server
CentOS 6.2下MySQL Cluster 7.2 配置
MySQL Cluster概述
MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。
MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于 Cluster中这些组件的关系,请参见下图:
一、节点分配,确保在同一个子网内,关闭防火墙,使用内网IP。
管理节点(MGMD) 192.168.64.251
数据节点(NDBD) 192.168.65.2
数据节点(NDBD) 192.168.65.3
查询节点(MYSQLD) 192.168.64.253
查询节点(MYSQLD) 192.168.64.254
二、 在5调机器上全部安装MySQL Cluster 7.2.14
1.解压 tar –zxvf mysql-cluster-gpl-7.2.5-linux2.6-x86_64.tar.gz
-
拷贝到安装目录cp /downfiles/mysql-cluster-gpl-7.2.5-linux2.6-x86_64 /usr/local/mysql cd /usr/local/mysql
-
创建数据库维护用户chown –R root . //把mysql的目录设置成所有者为root chown –R mysql /data //把data目录设置所有者为mysql chgrp –R mysql . //改成所属组为mysql
-
安装数据库脚本
cd scripts/
mysql_install_db –user=mysql
三、 在两个查询节点上创建MySQL服务,设置开机启动(在Cluster中可以忽略,因为查询节点不能早于管理节点启动)
- 创建MySQL服务
-
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
-
chmod +x /etc/init.d/mysql
-
chkconfig --add mysql //将mysql加入服务
-
chkconfig --level 345 mysql on //某些Linux(not RHAS3)还需要这个命令
Mysql的优化
设计数据库时:数据库表、字段的设计,存储引擎
利用好MySQL自身提供的功能,如索引等
横向扩展:MySQL集群、负载均衡、读写分离
SQL语句的优化(收效甚微)
下面拿字段设计来作为例子
链接:https://www.nowcoder.com/discuss/150059?type=0&order=0&pos=8&page=0
来源:牛客网
字段设计
字段类型的选择,设计规范,范式,常见设计案例
原则:尽量使用整型表示字符串
存储IP
INET_ATON(str),address to number
INET_NTOA(number),number to address
MySQL内部的枚举类型(单选)和集合(多选)类型
但是因为维护成本较高因此不常使用,使用关联表的方式来替代enum
原则:定长和非定长数据类型的选择
decimal不会损失精度,存储空间会随数据的增大而增大。double占用固定空间,较大数的存储会损失精度。非定长的还有varchar、text