MySQL优化

mysqlbug  查看编译参数

mysqlcheck 可以检查和修复MyISAM表,并且它还可以优化和分析表

mysql_config 编译mysql客户端程序

mysql_convert_table_format 修改表引擎

mysqld_multi  用来启动和停止任何运行的不同端口和套接字的mysqld进程

mysql_find_rows   输出所有匹配正则表达式的SQL查询。

mysql_fix_extensions  将 MYISAM 或者(ISAM)表文件转换为他们的规范格式,它会寻找和这些后缀匹配的文件

.frm.myd.myi.isd, and .ism  并且分别重命名他们为 .frm.MYD.MYI.ISD, and .ISM。 将文件从具有不区分大小写的文件名(如Windows)的系统传输到具有区分大小写的文件名的系统时,这可能很有用。

mysqlhotcopy  使用lock tables、flush tables和cp或scp来快速备份数据库.它是备份数据库或单个表最快的途径,完全属于物理备份,但只能用于备份MyISAM存储引擎和运行在数据库目录所在的机器上.

与mysqldump备份不同,mysqldump属于逻辑备份,备份时是执行的sql语句。

mysql_install_db 数据库的初始化 ,当数据库出现故障或者新增一个实例的时候需要进行实例化。

mysqlslap   mysql 自带的压力测试工具 

查询语句将内容输出到文件中

select * from user into outfile '/tmp/user.xls';     文件不存在的时候将会自动创建。

查看mysql 提供的引擎   show engines;

查看 mysql现在使用的引擎   show variables like "%storage_engine%";

查看某个表(user)使用了什么引擎    show create table user;   ENGINE 后面的参数表示的就是该表当前使用的引擎。

清空整个表的内容   truncate tablename 

导出所有用户权限

yum install perl-DBD-MySQL

wget percona.com/get/pt-show-grants

perl pt-show-grants --user=root --ask-pass --flush > /root/grants.sql

mysql -uroot < /root/grants.sql    将导出的所有用户权限导入到新建的数据库中。

配置中的一些参数

innodb_buffer_pool_size = 128M    缓冲池的大小,缓冲池是数据和索引缓存的地方, 如果单纯的是数据库服务器,设置为内存大小的75%。

innodb_buffer_pool_instances =    控制缓冲池的个数

innodb_log_buffer_size  数据库一般每秒都会把数据写入磁盘  这个参数不用太大

innodb_flush_log_at_trx_commit     对 innodb 的I/O 效率影响很大,默认值为1 ,可以取 0  1  2  三个值,

 一般建议设置为2 , 如果数据安全性要求比较高则使用默认值 1 

innodb_read_io_threads

innodb_write_io_threads   innodb读写的IO进程数,默认为 4 

innodb_file_per_table  控制 innodb每一个表使用独立的表空间,默认为OFF, 也就是所有表都会建立在 共享表空间中。

innodb_stats_on_metadata  mysql 在什么情况下会刷新innodb表的统计信息。

max_connections   连接最大数,当数据库报错 " too many connections" 时,就是因为此值设置的太小,常见是因为应用程序没有正常的关闭连接。

此值默认为 151 。

一个数据库配置向导 

https://tools.percona.com/wizard

设置慢查询

log_slow_queries=/var/log/sql_slow.log
long_query_time=5  (单位是 秒 s)

分析慢查询日志的工具   pt-query-digest

wget percona.com/get/pt-query-digest

./pt-query-digest    logname

原文地址:https://www.cnblogs.com/jkklearn/p/7040237.html