完整的mysql优化需要很深的功底,sql易学难精
下载 选择 GA稳定版 client 和 server 都需要下载
第三方软件安装在opt目录下
检查是否安装给mysql:
rpm -qa|grap -i mysql
装过就暴露出软件名,没装就是空的
liunx开发;不用中文,不用空格
安装服务端:rpm -ivh mysql-server.....rpm
安装客户端:rpm -ivh mysql-client...rpm
mysqladmin --version 能查看出版本就可以
service mysql start 启动服务
ps -ef|grep mysql
service mysql stop 关闭服务
top可以查看服务器开启时间
mysql 直接可以连接
默认没有密码,要设置密码
exit
/use/bin/mysqladmin -u root password mysql即可
现在mysql,会提示使用密码,此时需要使用身分和密码才能进入
chkconfig mysql on 设置开机启动mysql
checonfig --list|grep mysql 这样 016应该是关闭的,2345是开启的
也可以通过
ntsysv 把mysql设置为*设置
/var/lib/mysql mysql数据库文件的存放位置
/usr/share/sql 配置文件目录
/usr/bin 相关命令目录
/etc/init.d/mysql 启停脚本目录
5.5 版本 cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
5.6版本 cp /usr/share/mysql/my-default.cnf /etc/my.cnf
重启服务
show variables like “%char%”
发现数据库设置字符为拉丁
vim my.cnf
[client]
default-character-set=utf8
[mysqld]
sort-buffer-size=2M 排序缓存池大小,不够了商量好再改
端口…
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_cl
[mysql]
no-auto-rehash
default-character-set=utf8
重启服务
在字符集修改之前建 的库还是乱码,但是后续建的库就不乱码
二进制日志文件log-bin 主从复制
错误日志文件log-error 默认关闭,记录严重的警告和错误信息,每次启动和关闭的详细信息等
查询日志log 默认关闭,记录查询的sql语句,如果开启会降低mysql的整体性能,因为记录日志也是需系统资源的
/var/lib/bin 查看所有库:ls -1F|grep ^d 所有以目录开头的
frm文件:存放表结构
myd文件:存放表数据
myi文件:查找表数据的索引
插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取向分离
最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp、ip的通信。主要完成一些类似于连接处理,授权认证,及相关的安全方案,在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程,同样在盖层上可以实现基于ssl的安全连接
第二层架构主要完成大多数的核心服务功能,若要跨存储引擎的功能也在该层实现.
存储引擎层,存储引擎真正的负责了mysql中数据的存储和提取,服务聪哥api与存储引擎通信
数据存储层,主要讲 数据存储在裸设备的文件系统知识,并完成与存储引擎的交互
innodb myisam
show engine;
show variables like "%storage_engine%";
主外键 事务 行表锁 缓存 表空间 关注点
myisam 不支持 不支持 表锁 只缓存索引 小 性能
innoDB 支持 支持 行锁 缓存索引和数据,对内存要求高 大 事务
阿里对二进制源码进行优化使得更适合他们的业务,存储引擎更换了percona