centos mysql优化 centos和ubuntu哪个好

各位老铁们,大家好,今天由我来为大家分享centos mysql优化,以及centos和ubuntu哪个好的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

mysql 5.6与5.7内存参数优化内存占用为30MB左右

MySQL 5.6和 5.7默认启动时占用内存高达400多兆,对于小型内存应用而言,这样的内存占用率明显偏高,可能导致系统崩溃。为了解决这一问题,我们可以通过编辑 `/etc/my.cnf`文件,在 `[mysqld]`下调整或修改以下参数以优化内存使用。

具体调整如下:

1. `performance_schema_max_table_instances= 200`

2. `table_definition_cache= 100`

3. `table_open_cache= 100`

调整这三个参数的值,可以显著降低内存占用,将 MySQL使用的内存减少到约60兆左右,大大降低了默认内存使用量。

进一步的调整包括:

1. `innodb_buffer_pool_size= 2M`

2.禁用 `performance_schema`功能(默认启用,占用大量内存)

在完成上述调整后,MySQL的内存使用量大约降至22兆。以下是完整的配置文件示例,适用于 CentOS 6 64位系统,使用 yum安装的环境:

通过 ssh登录服务器或 VPS,编辑 `/etc/my.cnf`文件,执行以下配置:

`# For advice on how to change settings please see`

`dev.mysql.com/doc/refman/`

`[mysqld]`

`# innodb_buffer_pool_size= 128M`

`# log_bin`

`#`

`# join_buffer_size= 128M`

`# sort_buffer_size= 2M`

`# read_rnd_buffer_size= 2M`

`datadir=/var/lib/mysql`

`socket=/var/lib/mysql/mysql.sock`

`#symbolic-links=0`

`skip-external-locking`

`key_buffer_size= 8M`

`max_allowed_packet= 1M`

`table_open_cache= 4`

`sort_buffer_size= 64K`

`read_buffer_size= 256K`

`read_rnd_buffer_size= 256K`

`net_buffer_length= 2K`

`thread_stack= 240K`

`innodb_buffer_pool_size=2M`

`performance_schema_max_table_instances=50`

`table_definition_cache=50`

`table_open_cache=32`

`max_connections=50`

`max_user_connections=35`

`wait_timeout=10`

`interactive_timeout=15`

`long_query_time=5`

`symbolic-links=0`

`sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES`

`[mysqld_safe]`

`log-error=/var/log/mysqld.log`

`pid-file=/var/run/mysqld/mysqld.pid`

以上配置文件中包含了多个参数调整,旨在降低内存占用,提高性能和稳定性。在实际应用中,根据服务器资源和业务需求进行微调,以达到最佳的性能和资源利用。

mysql优化之limit优化

探讨MySQL的limit优化问题

准备环境包括:CentOS7服务器一台,MySQL数据库,一个名为actor的表。

actor表的结构包含四个字段,actor_id为主键,表中有200条记录。

测试第一条SQL:查询单条数据时,数据库扫描了200行。

测试第二条SQL:同样扫描了200行。

插入一条数据后再次测试初始SQL,发现扫描行数未改变。面对大量数据时,这种查询效率低下的问题如何解决?

利用主键或索引可以减少行数查询。调整SQL,发现只查询一条数据时,数据库扫描的行数减少至11行。

优化SQL,确保只扫描一行数据。

通过调整SQL,我们发现查询效率提升,只扫描了必要的行数。分析其意义:使用主键查询一条数据时,比使用limit查询效率更高。

使用limit查询时,尽管对于小数据量查询效果良好,但在处理大量数据时,其带来的数据库I/O操作开销巨大。因此,进行分页优化时,应结合主键使用limit,每次查询前记录上次查询的最后ID,以此进行下一次查询。

然而,这种方法存在缺陷:若数据库主键中间断掉部分,将无法保证每页数据的完整性。为解决此问题,引入与主键相似的索引,这样在使用where条件时,即使数据被删除也能保持排序连续性,确保分页查询的稳定性和效率。

总结,MySQL的limit优化需根据数据量和查询需求灵活调整,结合主键和索引,实现高效、稳定的查询处理。

如何在linux系统中centos7.6上面安装mysql数据库

安装mysql基本有三种办法:

1,源码编译。 2,二进制包方式安装 3, yum安装。

可以采用二进制包方式安装mysql,并进行优化配置。

1.安装之前,先创建mysql用户

[root@linuxprobe_nfs~]# useradd mysql-s/sbin/nologin-M

[root@linuxprobe_nfs~]# id mysql

uid=500(mysql) gid=500(mysql) groups=500(mysql)

2.软件包的下载及解压

[root@linuxprobe_nfs~]# mkdir/home/chenfan/tools-p

[root@linuxprobe_nfs~]# cd/home/chenfan/tools

在官网上下载mysql-5.5.32-linux2.6-x86_64.tar.gz

[root@linuxprobe_nfs tools]# ls

mysql-5.5.32-linux2.6-x86_64.tar.gz

[root@linuxprobe_nfs tools]# tar zxvf mysql-5.5.32-linux2.6-x86_64.tar.gz

[root@linuxprobe_nfs tools]# ls

mysql-5.5.32-linux2.6-x86_64 mysql-5.5.32-linux2.6-x86_64.tar.gz

[root@linuxprobe_nfs local]# mv mysql-5.5.32-linux2.6-x86_64/usr/local/mysql-5.5.32

###免编译安装 mysql二进制包安装与配置实战记录

[root@linuxprobe_nfs local]# cd/usr/local

[root@linuxprobe_nfs local]# ln-s mysql-5.5.32 mysql

###此处的软链接为了版本升级提供了便利

3.初始化数据库

[root@linuxprobe_nfs local]# mysql/scripts/mysql_install_db--basedir=/usr/local/mysql/--datadir=/usr/local/mysql/data/--user=mysql

###此处如果初始化发生错误,删除data目录下的内容,rm-fr mysql/data/*,重新初始化。

4.生成MySQL配置文件

[root@linuxprobe_nfs local]# cd mysql

[root@linuxprobe_nfs mysql]# cp support-files/my-small.cnf/etc/my.cnf

5.授权管理文件

[root@linuxprobe_nfs~]# chown-R mysql:mysql/usr/local/mysql/

[root@linuxprobe_nfs~]# ls-ld/usr/local/mysql/

drwxr-xr-x. 13 mysql mysql 4096 Jun 24 17:21/usr/local/mysql/

6.设置科学的启动方式

[root@linuxprobe_nfs mysql]# cp support-files/mysql.server/etc/init.d/mysqld

[root@linuxprobe_nfs mysql]# chmod+x/etc/init.d/mysqld

[root@linuxprobe_nfs mysql]#/etc/init.d/mysqld start

Starting MySQL... SUCCESS!

[root@linuxprobe_nfs mysql]# chkconfig--add mysqld

[root@linuxprobe_nfs mysql]# chkconfig mysqld on

[root@linuxprobe_nfs mysql]# chkconfig--list mysqld

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

###设置开机自启动mysql

7.配置MySQL环境变量

[root@linuxprobe_nfs mysql]# echo'PATH=/usr/local/mysql/bin:$PATH'>>/etc/profile

[root@linuxprobe_nfs mysql]# source/etc/profile

[root@linuxprobe_nfs mysql]# echo$PATH

/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

###此处PATH路径的设置为了后续mysql命令的使用

8.mysql登陆与密码设置

[root@linuxprobe_nfs mysql]# mysql

阅读剩余
THE END