MySQL新手入门教程:mysql优化入门

MySQL是目前常用的RDBMS(RelationalDatabaseManagementSystem/关系数据库管理系统),还有其他如PostgreSQL,Oracle,DB2等关系数据库管理系统。而数据库性能的重要性无需强调,在这里简单说一下,安装MySQL之后的优化相关的话题。

计算MySQL使用内存

首先确认一下,计算MySQL进程占用内存的方法。

MySQL占用内存 = 全局缓存  + ( 线程缓存 x 最大连接数 )
全局缓存的占用内存,用以下方法计算。

max_heap_table_size参数不一定分配内存,在这里为了安全也计算到全局缓存。

全局缓存 = key_buffer_size
                + innodb_buffer_pool_size
                + innodb_additional_mem_pool_size
                + innodb_log_buffer_size
                + max_heap_table_size
                + query_cache_size
线程缓存的占用内存,用以下方法计算。

在通常查询中myisam_sort_buffer_size使用的可能性很小,因此没有计算到线程缓存。并且在这里把max_allowed_packet计算在线程缓存里,如果接传送的数据量不大的话,可使用net_buffer_length进行计算。

线程缓存 = sort_buffer_size
                + read_rnd_buffer_size
                + join_buffer_size
                + read_buffer_size
                + max_allowed_packet
                + thread_stack
MySQL缓存

如何使用缓存对MySQL的性能表现至关重要,MySQL有以下2种缓存。

全局缓存(Global Cache)
线程缓存(Thread Cache)
全局缓存

innodb_buffer_pool_size

缓存InnoDB的索引及数据
使用InnoDB时至关重要的参数
innodb_additional_mem_pool_size

InnoDB存储的数据目录信息及内部数据结构
不足时往MySQL错误日志文件输出警告(Warning)
使用默认值,查看MySQL错误日志文件不足时再增加
innodb_log_buffer_size

InnoDB事务日志使用的缓冲区
事务结束或者一定间隔将缓存区的日志写到文件(同步到磁盘)
尽量给其他参数多配置内存
key_buffer_size

缓存MyISAM的索引
query_cache_size

缓存查询(SELECT)的结果
对MySQL性能有直接影响
query_cache_type参数可改变MySQL缓存行为
线程缓存

sort_buffer_size

ORDER BY,GROUP BY时使用区域
根据程序的使用情况进行配置
read_rnd_buffer_size

读取排序后数据时使用
提高ORDER BY性能
join_buffer_size

进行表结合时,如没有使用索引的话使用该区域
表结合推荐使用索引,所以该参数无需配置的过大
read_buffer_size

读取全表时的使用区域
不使用索引的查询是,不应该使用的因此该参数无需配置的过大
myisam_sort_buffer_size

MyISAM的DDL(DataDefinitionLanguage)的索引排序时使用的区域
通常查询不会使用该区域,因此默认就可以
max_allowed_packet

数据包发送缓冲区是存储接传送数据包的内存区域
被net_buffer_length参数初期化,根据需要扩张到max_allowed_packe指定的大小
内存以外的参数

max_connections

可连接MySQL数据库的最大连接数
默认是151
innodb_lof_file_size

保存InnoDB更新日志到磁盘
innodb_log_file已满时,innodb_buffer_pool更新日志写入磁盘
调整innodb_buffer_pool_size时,innodb_log_file_size也需调整
调整的越大Crash Recovery的时间也会跟着变长
table_open_cache

保存使用表(Table)的文件指针
至少需要「同时连接数 x Table数」
MyISAM是一个表(Table)需要2个文件指针
注意OS限制 ※cat /proc/sys/fs/file-max
thread_cache_size

通过缓存线程(Thread),降低连接时的负荷
根据实际的负荷进行配置

时间: 2024-08-30 21:29:39

MySQL新手入门教程:mysql优化入门的相关文章

mysql入门教程,mysql基本语法

MySQL的语法 伟大的事你做的一切在MySQL的是, "守则"是很容易对人类阅读,而不是更难的编程语言如C或C + + .只有极少数特殊字符和符号都必须建立一个MySQL的查询,查询包括最完全的英文单词! 学习策略MySQL的 MySQL的语言是不一样复杂的大多数编程语言,因此,最好的办法是学习与直接的例子.由于本教程的重点是结合MySQL和PHP中,大多数的例子是准备就绪,可供您复制,粘贴,并运行在Web服务器上. MySQL中的大写字母查询 有许多MySQL中的关键字,以及良好的

php入门教程[mysql数据更新与插入保存]

$hostname="localhost";         //定义连接到的mysql服务器名 $username="root";          //定义用于连接的用户名 $password="";           //定义用于连接的密码 $link=mysql_connect($hostname,$username,$password);   //连接到mysql服务器 mysql_select_db("test"

PHP3 入门教程MySQL 数据库界面

  下面的内容就是如何用 PHP3.0 和 MySQL 来构造数据库 Web 应用.       下面这些涉及到 MySQL 的功能,都必须在服务器上安装调试好 MySQL 之后才能够运行.如果你对 MySQL 还不是很熟,那么最好先看看有关的文章.       PHP 在数据库服务器和 Web 浏览器之间,扮演了一个中间人的角色,把一方的命令解释后传给另一方,而后在把取得的结果传回来.正是由于这种沟通的可能性,使得许多任务得以实现.比如网上调查,在线购物,个人化站点等等,无不借助于这种技术.

mysql入门教程-MYSQL语句

  SQL分类: DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete,Update,Insert) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 Create DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 devic

新手必看 Seo优化入门指导

中介交易 SEO诊断 淘宝客 云主机 技术大厅 本人做网站两年了,虽然算不上很成功,希望把自己懂的一些基本做站要领一点一点整理出来,希望对新人有所帮助,凡事要从基本的介绍起,作为新手首先要学的就是基本知识,现在我来介绍一下搜索引擎优化的基本方法,也就是SEO优化的基本教程哦. 1.网站内容的确定 如果你是要建设一个新站,首先你要确定网站的基本内容.你的网站要向用户展示什么内容?用户能从你的网站得到什么东西?或者能为用户解决什么疑问.一个网站要有明确的方向,在这个基础上,建设你的网站. 2.域名的

21分钟 MySQL 入门教程_Mysql

21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root

mybatis原理概述入门教程_java

本文我将要介绍一下mybatis的框架原理,以及mybatis的入门程序,实现用户的增删改查,她有什么优缺点以及mybatis和hibernate之间存在着怎么样的关系,希望对小伙伴们有帮助,不足之处,还请多多指教. 什么是mybatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. MyBatis 是支持定

简洁的十分钟Python入门教程_python

[简介] Python是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. [特点] 1 Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型. 2 Python具有很强的面向对象特性,而且简化了面向对象的实现.它消除了保护类型.抽象类.接口等面向对象的元素. 3 Python代码块使用空格或制表符缩进的方式分隔代码. 4 Python仅有31个保留字,而且没有分号.begin.

PHP入门教程之数学运算技巧总结_php技巧

本文实例讲述了PHP入门教程之数学运算技巧.分享给大家供大家参考,具体如下: Demo1.php <?php // $a = '5'; // $b = 7+$a; // echo $b; $a = 'a'; $b = 7+$a; echo $b; ?> Demo2.php <?php $a = 10.0; //is_int -- 检测变量是否是整数 if(is_int($a)) { echo '通过'; }else{ echo '不通过'; } ?> Demo3.php <?