`

浅谈MySQL数据库优化

阅读更多

浅谈MySQL数据库优化

作者:IT168 周卫丰  2007-08-08
【IT168 开源数据库】我们在前面已经简单介绍了一些MYSQL数据库的基本操作,这一章我们将针对MYSQL数据库管理员详细介绍下MYSQL数据库的优化问题。 

1 优化MySQL服务器 

1.1 MYSQL服务器系统变量 

我们在前面的章节中曾经讲到过MYSQL服务器的一些基本管理,这里我们再对MYSQL服务器的服务器变量和状态变量做个简单介绍。 

查询MYSQL服务器系统变量: 
C:\Program Files\MySQL\MySQL Server 5.0\bin> mysqld --verbose –help
通过mysqladmin命令来查询MYSQL服务器系统变量:
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqladmin -uroot -p variables > d:\init.txt Enter password: ******
Init.txt部分内容:
+---------------------------------+----------------------------------------------------------------+ | Variable_name | Value | +---------------------------------+----------------------------------------------------------------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | | automatic_sp_privileges | ON | | back_log | 50 ………… | version_compile_machine | ia32 | | version_compile_os | Win32 | | wait_timeout | 28800 | +---------------------------------+----------------------------------------------------------------+

获得MYSQL实际使用的服务器系统变量:
mysql> show variables;
利用like参数来显示具体的服务器系统变量:
mysql> show variables like 'init_connect%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | init_connect | | +---------------+-------+ 1 row in set (0.00 sec)
调整MYSQL服务器的系统变量 

mysqld服务器维护两种变量。全局变量影响服务器的全局操作。会话变量影响具体客户端连接相关操作。服务器启动时,将所有全局变量初始化为默认值。可以在选项文件或命令行中指定的选项来更改这些默认值。服务器启动后,通过连接服务器并执行SET GLOBAL var_name语句可以更改动态全局变量。要想更改全局变量,必须具有SUPER权限。 

方法一: 
mysql> SHOW VARIABLES LIKE 'query_cache_size'; +------------------+----------+ | Variable_name | Value | +------------------+----------+ | query_cache_size | 23068672 | +------------------+----------+ 1 row in set (0.01 sec) mysql> SET GLOBAL query_cache_size = 31457280; Query OK, 0 rows affected (0.00 sec) mysql> SHOW VARIABLES LIKE 'query_cache_size'; +------------------+----------+ | Variable_name | Value | +------------------+----------+ | query_cache_size | 31457280 | +------------------+----------+ 1 row in set (0.00 sec)
方法二:

mysql> show variables like 'query_cache_size%'; +------------------+----------+ | Variable_name | Value | +------------------+----------+ | query_cache_size | 31457280 | +------------------+----------+ 1 row in set (0.00 sec) mysql> SET @@global.query_cache_size = 20971520; Query OK, 0 rows affected (0.09 sec) mysql> show variables like 'query_cache_size%'; +------------------+----------+ | Variable_name | Value | +------------------+----------+ | query_cache_size | 20971520 | +------------------+----------+ 1 row in set (0.00 sec) mysql> select @@query_cache_size; +--------------------+ | @@query_cache_size | +--------------------+ | 20971520 | +--------------------+ 1 row in set (0.06 sec)
mysqld服务器还为每个客户端连接维护会话变量。连接时使用相应全局变量的当前值对客户端会话变量进行初始化。客户可以通过SET [SESSION] var_name语句来更改动态会话变量。设置会话变量不需要特殊权限,但客户可以只更改自己的会话变量,而不更改其它客户的会话变量。 

mysql> SET sort_buffer_size = 10 * 1024 * 1024; Query OK, 0 rows affected (0.08 sec) mysql> show variables like 'sort_buffer%'; +------------------+----------+ | Variable_name | Value | +------------------+----------+ | sort_buffer_size | 10485760 | +------------------+----------+ 1 row in set (0.00 sec)
注意,当使用启动选项设置变量时,变量值可以使用后缀K、M或G分别表示千字节、兆字节或gigabytes。例如,下面的命令启动服务器时的键值缓冲区大小为16 megabytes:
C:\ProgramFiles\MySQL\MySQL Server 5.0\bin>mysqld--key_buffer_size=16M
后缀的大小写美关系;16M和16m是同样的。 

运行时,使用SET语句来设置系统变量。此时,不能使用后缀,但值可以采取下列表达式: 
mysql> SET sort_buffer_size = 10 * 1024 * 1024;
 1 2 3 4 5 6 7 

分享到:
评论

相关推荐

    浅谈MySQL数据库性能优化

    本文侧重通过优化MySQL 数据库缓存参数如查询缓存,表缓存,日志缓存,索引缓存,innodb缓存,插入缓存,以及连接参数等方式来对MySQL数据库进行优化。  缓存参数  这里先引用一句话,从内存中读取一个数据的...

    浅谈基于MySQL数据库结构设计.pptx

    浅谈基于MySQL数据库结构设计 本文将围绕MySQL数据库结构设计进行讨论,旨在帮助读者更好地理解和应用MySQL数据库。 MySQL是一个开源的关系型数据库管理系统,它使用了一种名为Structured Query Language(SQL)的...

    浅谈MySQL中优化sql语句查询常用的30种方法.doc

    浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法 MySQL 是一种广泛使用的关系数据库管理系统,优化 SQL 语句查询是提高数据库性能的关键。下面是浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法: 一、避免全表...

    浅谈MYSQL中的索引优化-收藏学习.pdf

    ### 浅谈MYSQL中的索引优化 #### 一、MySQL中的索引与B+树 在MySQL数据库系统中,索引被广泛应用于提高数据检索的效率。索引本质上是一种数据结构,它允许用户快速定位数据库中的记录。在MySQL中,B+树是最常见的...

    2011年DTCC数据库大会ppt下载

    浅谈伪分布式数据库架构_金官丁_20110328.pdf 汪富强: DSG数据库复制和备.pdf 张瑞: Database和SSD的实践与探索-IT168数据库大会_公开.pdf 崔华:数据安全与恢复机制揭密.pdf 百度数据库优化实践-李京生_公开版.pdf ...

    浅谈mysql数据库中的using的用法

    在MySQL数据库中,`USING` 是一个在执行JOIN操作时非常有用的子句,它用于指定连接两个或多个表的共同列。当我们需要基于共享的列来联接两个表时,`USING` 提供了一个简洁且易于理解的方法。本文将深入探讨 `USING` ...

    浅谈MySQL和MariaDB区别(mariadb和mysql的性能比较)

    MySQL和MariaDB是两种广泛使用的开源关系型数据库管理系统(RDBMS),它们有着深厚的渊源。MySQL由瑞典的MySQL AB公司开发,后被Sun Microsystems收购,最终落入甲骨文(Oracle)公司旗下。由于对Oracle可能使MySQL...

    浅谈数据库优化方案

    数据库优化是提升系统性能的关键环节,尤其是在大数据量的环境下,有效的优化策略能够显著改善查询速度,减少资源消耗,以及防止死锁和阻塞的发生。以下将详细探讨几个关键的数据库优化方案。 首先,表分区是一种...

    浅谈MySQL大表优化方案

    MySQL数据库本身高度灵活,造成性能不足,严重依赖开发人员的表设计能力以及索引优化能力,在这里给几点优化建议 时间类型转化为时间戳格式,用int类型储存,建索引增加查询效率 建议字段定义not null,null值很难...

    浅谈MySQL数据库中日期中包含零值的问题

    默认情况下MySQL是可以接受在日期中插入0值,对于现实来说日期中的0值又没有什么意义。调整MySQL的sql_mode变量就能达到目的。 set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION';...

    浅谈MySQL索引优化分析

    MySQL索引优化分析是数据库管理员和开发人员必须掌握的关键技能,因为它直接影响到...通过深入理解索引原理、熟练使用`EXPLAIN`命令,以及持续监控和调整,我们可以确保MySQL数据库在处理大规模数据时保持高效运行。

    浅谈大数据处理中的数据库I_O问题.pdf

    首先,利用专业的数据库优化工具,如PLSQL的执行计划,可以快速定位和解决性能问题。然而,面对大数据量的挑战,传统的行式数据库(如Oracle、MySQL)在处理I/O效率上的局限性变得突出。行式数据库在读取数据时,...

    浅谈MySQL中优化sql语句查询常用的30种方法

    在MySQL数据库管理中,SQL语句的优化是提高数据库性能的关键。以下是对SQL查询优化的30种常用方法的详细分析: 1. **避免全表扫描**:在编写查询时,优先考虑在`WHERE`和`ORDER BY`涉及的列上创建索引,以减少查询...

    浅谈分布式内存数据库系统设计.pdf

    2. 网络带宽和内存空间的高效利用:在分布式内存数据库系统中,数据不是简单地存储在内存中,而是通过一系列复杂的存储策略进行优化,包括建表、建索引和排序等。 3. 高可靠性和灵活性:分布式内存数据库需要在不同...

Global site tag (gtag.js) - Google Analytics