Welcome 微信登录

首页 / 数据库 / MySQL

高性能的MySQL(6)查询执行机制(一)

高性能的MySQL(6)查询执行机制(一)

高性能的MySQL(6)查询执行机制(一)2014-10-22希望优化查询性能的时候,最好的办法是弄清楚MySQL是如何优化和执行查询的。了解了内部机制,才能更好的实施设计。当MySQL执行一个查询时,到底做了什么,先看一副图吧:1、客户端发送一条查询给服务器。2、服务器先检查查询缓存,如果命中了缓存,则立刻返回缓存中的结果,否则进入下一步。3、服务器端进行SQL解析、预处理、再由优化器生成对应的执行计划。4、MySQL根据优化器生成的执行执行计划,调用存...
高性能的MySQL(6)查询执行机制(二)

高性能的MySQL(6)查询执行机制(二)

高性能的MySQL(6)查询执行机制(二)2014-10-22这里继续上一篇中的优化器部分:MySQL如何执行关联查询MySQL对任何关联都执行嵌套循环关联操作,即先在一个表中循环取出单条数据,然后再嵌套循环到下一个表中寻找匹配的行,依次下去,直到找到所有表中匹配的行为止。然后根据各个表匹配的行,返回查询中需要的各个列。MySQL会尝试在最后一个关联表中找到所有匹配的行,如果最后一个关联表无法找到更多的行以后,MySQL返回到上一层次关联表,看是否能够找到...
高性能的MySQL(6)如何优化特定类型的查询

高性能的MySQL(6)如何优化特定类型的查询

高性能的MySQL(6)如何优化特定类型的查询2014-10-22只要说明几种日常用到的查询可以优化的地方,只是特别的情况下可以使用,不要期望任何情况下都成立,优化是一个实践的漫长过程!一、最大值和最小值优化对于min()和max()查询,MySQL的优化并不是很好,比方说:select min(actor_id) from actor where first_name = "Jane";因为first_name上没有索引,所以这个会扫描全表。如果MySQ...
高性能的MySQL(7)Query Cache技术详解

高性能的MySQL(7)Query Cache技术详解

高性能的MySQL(7)Query Cache技术详解2014-10-22MySQL查询缓存保存查询返回的完整结果。当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段。查询缓存会跟踪查询中涉及的每个表,如果这写表发生变化,那么和这个表相关的所有缓存都将失效。但是随着服务器功能的强大,查询缓存也可能成为整个服务器的资源竞争单点。如何来判断打开查询缓存的好坏呢,就是本篇的内容~~~一、如何判断命中缓存缓存存放在一个引用表中,通过一个哈希值引用,这个哈...
高性能的MySQL(7)分区技术详解

高性能的MySQL(7)分区技术详解

高性能的MySQL(7)分区技术详解2014-10-22在我之前的2篇博客中已经简单介绍过MySQL5.1之后的分区技术的基本理论和分区技术的表存储文件及特点,博客地址如下:http://janephp.blog.51cto.com/4439680/1305220http://janephp.blog.51cto.com/4439680/1305937今天要介绍一下分区技术一些使用场景和机制。MySQL实现分区表的方式--对底层表封装--意味着索引也按照分...
高性能的MySQL(7)字符集和校对概述

高性能的MySQL(7)字符集和校对概述

高性能的MySQL(7)字符集和校对概述2014-10-22字符集是指一种从二进制编码到某类字符符号的映射,可以参考如何使用一个字节来表示英文。校对是指一组用于某个字符集的排序规则。每一类编码字符都有其对应的字符集和校对规则。一、MySQL如何使用字符集每种字符集都可能有多种校对规则,并且都有一个默认的校对规则,并且每个校对规则只是针对某个字符集,和其他的字符集么有关系。一定要记住一点:只有基于字符集的值才真正的有字符集的概念。MySQL的设置可以分为两类...
高性能的MySQL(8)优化服务器配置:I/O

高性能的MySQL(8)优化服务器配置:I/O

高性能的MySQL(8)优化服务器配置:I/O2014-10-22有一些配置项影响着MySQL怎样同步数据到磁盘以及如何做恢复操作,这写操作对性能影响很大,因为都设计到昂贵的I/O操作,通常保证数据立刻并且一致的写到磁盘是很昂贵的,有的时候不得不冒一点险,延迟持久化到磁盘,来增加并发和减少I/O等待。一、InnoDB I/O配置对于常见的应用,InnoDB日志文件大小、InnoDB怎样刷新日志缓冲,以及怎样执行I/O比较重要。a、InnoDB事务日志Inn...
高性能的MySQL(8)优化服务器配置:安全与稳定

高性能的MySQL(8)优化服务器配置:安全与稳定

高性能的MySQL(8)优化服务器配置:安全与稳定2014-10-22在前面的章节已经介绍了一些选项,还有一些剩余的也很重要的选项,我们继续说明一下:一、基本配置tmp_table_size 和 max_heap_table_size这2个设置控制使用Memory引擎的内存临时表能使用多大的内存。如果隐士内存临时表的大小超过这2个设置,将会被转换为磁盘临时表。隐士临时表是一种并非自己创建,而是服务器创建,由于保存执行中的查询的中间结果的表。临时表最好呆在内...
高性能的MySQL(8)优化服务器配置:并发和负载

高性能的MySQL(8)优化服务器配置:并发和负载

高性能的MySQL(8)优化服务器配置:并发和负载2014-10-22当MySQL遇到高并发时,可能会遇到不曾遇到的瓶颈。一、InnoDB并发配置InnoDB是为高性能设计的,在最近几年他的提升非常明显,但依然不完美。InnoDB有自己的 “线程调度器”控制线程怎么进入内核访问数据,以及他们在内核中一次可以做哪些事情。最基本的限制并发的方式是使用innodb_thread_concurrency变量,它会限制一次性可以有多少个线程进...
为了防止数据库崩溃使数据丢失的解决方案

为了防止数据库崩溃使数据丢失的解决方案

为了防止数据库崩溃使数据丢失的解决方案2014-10-22基础知识数据库日志的分类1.二进制日志2.错误日志3.一般查询日志4.中继日志5.慢查询日志二进制日志的格式:statement:基于语句row:基于行mixed:混合方式mysql的隔离级别:readuncommitted:读未提交readcommitted:读提交repeatableread:可重读serializable:可串行二进制日志,默认放在数据库,名称为mysql-bin.xxxxx,...
mysql如何授权远程IP连接

mysql如何授权远程IP连接

mysql如何授权远程IP连接2014-10-22新安装的MySQL是默认不开户远程访问权限的,也就不能外部连接MySQL。这样对想远程调用MySQL的数据很不方便。下面我们来看下如何设置允许远程连接MySQL数据库。登录MySQLmysql -uroot -p如果无法登录可以使用find / -name mysql搜索mysql程序的路径,比如mysql程序路径为:/usr/local/mysql/bin/mysql,我们可以这样登录:/usr/loca...
MySQL的备份和恢复

MySQL的备份和恢复

MySQL的备份和恢复2014-10-22前奏:建议在Linux中使用RPM包来安装MySQL。MySQL RPM目前已经嵌入到SuSE Linux 7.3系统中,但是应当能在大多数支持rpm和使用glibc的Linux版本中工作。MySQL AB不提供与具体平台相关的RPM;具体平台相关的RPM和通用RPM之间的区别是具体平台相关RPM为目标平台而构建,为动态连接。而通用RPM与Linux线程之间是静态连接。注释:通常由其它供应商提供MySQL的RPM分...
<< 201 202 203 204 205 206 207 208 209 210 >>