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中这些组件的关系,请参见下图:Mysql安装、配置、优化
一、节点分配,确保在同一个子网内,关闭防火墙,使用内网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

  1. 拷贝到安装目录cp /downfiles/mysql-cluster-gpl-7.2.5-linux2.6-x86_64 /usr/local/mysql cd /usr/local/mysql

  2. 创建数据库维护用户chown –R root . //把mysql的目录设置成所有者为root chown –R mysql /data //把data目录设置所有者为mysql chgrp –R mysql . //改成所属组为mysql

  3. 安装数据库脚本
    cd scripts/
    mysql_install_db –user=mysql

三、 在两个查询节点上创建MySQL服务,设置开机启动(在Cluster中可以忽略,因为查询节点不能早于管理节点启动)

  1. 创建MySQL服务
  1. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

  2. chmod +x /etc/init.d/mysql

  3. chkconfig --add mysql //将mysql加入服务

  4. 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