![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
03) MySQL优化
文章平均质量分 55
ygc2022
这个作者很懒,什么都没留下…
展开
-
MySQL 5.1分区技术初探(二)
<br />2. MySQL分区介绍 <br /> MySQL的分区技术不同与之前的分表技术,它与水平分表有点类似,但是它是在逻辑层进行的水平分表,对与应用程序而言它还是一张表。 <br />2.1 MySQL分区类型 <br /> MySQL5.1有5中分区类型: <br /> RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区; <br /> LIST 分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值转载 2010-10-21 13:40:00 · 943 阅读 · 0 评论 -
mysql多实例的安装以及主从复制配置
1.mysql多实例的安装1)配置文件# cat /etc/my.cnf.multi[mysqld_multi]mysqld=/usr/bin/mysqld_safe //mysqld的路径mysqladmin=/usr/bin/mysqladmin //转载 2011-09-15 00:18:49 · 914 阅读 · 0 评论 -
Amoeba
Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。与MySQL官方的MySQL Proxy相比,作者强调转载 2011-09-11 15:13:21 · 674 阅读 · 0 评论 -
mysql 的 if 简单介绍
IF(g.give_integral > -1, g.give_integral, c.goods_price)这个函数的结果要根据g.give_integral的值,来决定函数值。如果g.give_integral大于-1函数值就是g.give_integral,否则函数值就原创 2011-07-21 21:37:16 · 416 阅读 · 0 评论 -
降低锁竞争 减少MySQL用户等待时间
<br />通过锁机制,可以实现多线程同时对某个表进行操作。如下图所示,在某个时刻,用户甲、用户乙、用户丙可能会同时或者先后(前面一个作业还没有完成)对数据表A进行查询或者更新的操作。当某个线程涉及到更新操作时,就需要获得独占的访问权。在更新的过程中,所有其它想要访问这个表的线程必须要等到其更新完成为止。此时就会导致锁竞争的问题。从而导致用户等待时间的延长。在这篇文章中,笔者将跟大家讨论,采取哪些措施可以有效的避免锁竞争,减少MySQL用户的等待时间。<br /> 背景模拟:<br /> 为了更加清楚的说原创 2011-03-17 14:41:00 · 593 阅读 · 0 评论 -
MySQL技巧:做好Limit优化
<br />我们在查询数据时,往往需要指定返回几行数据。如现在有一个B/S架构的应用程序,其每一页可能只显示30条记录。此时为了提高显示的效率,一般就要求数据库一次只返回三十条纪录。等用户按下一页的时候,再从数据库中返回30条记录,以此类推。这可以缩短数据显示的时间。当查询的基表比较大时,这个措施非常有效。此时可以使用Limit关键字来实现这个需求。Limit子句可以被用于强制Select查询语句返回指定的记录数量。<br /> 通常情况下,Limit关键字可以接受一个或者两个数字参数。需要注意的是,这个原创 2011-03-17 14:39:00 · 543 阅读 · 0 评论 -
对MySQL性能影响关系紧密的五大配置参数
<br />以下的文章主要是对MySQL性能影响关系紧密的五大配置参数的介绍,我前几天在相关网站看见对MySQL性能影响关系紧密的五大配置参数的资料,觉得挺好,就拿出来供大家分享,望你能有所收获。<br /><br />(一)连接<br />连接通常来自Web服务器,下面列出了一些与连接有关的参数,以及该如何设置它们。<br />1、max_connections<br />这是Web服务器允许的最大连接数,记住每个连接都要使用会话内存(关于会话内存,文章后面有涉及)。<br />2、max_pac原创 2010-11-12 12:31:00 · 1099 阅读 · 0 评论 -
php与memcached服务器交互的分布式实现源码分析[memcache版]
前段时间,因为一个项目的关系,研究了php通过调用memcache和memcached PECL扩展库的接口存储到分布式缓存服务器的机制,在此做我根据他们各自的源码进行分析,希望能对这方面感兴趣的人有些帮助。本篇文章我会针对php和memcache扩展库的交互根据源码展开分析。PHP调用memcache的接口通常会是如下过程: $mmc=new Memcache(); $mmc->addServer('node1',11211); $mmc->addServer('node2原创 2010-11-03 17:16:00 · 952 阅读 · 0 评论 -
squid 和 memcahe 区别
<br />可以将squid理解为前端缓存,<br />memcache则为后端缓存。<br />squid 介于 web server 和 客户端之间。<br />memcache 则介于 web server 和 database之间。<br /><br />squid 主要是缓存整个页面文件。<br /> <br />而memcache用来缓存数据。现在可以申请第三方缓存解决方案,也就是CDN,他们做的其实就是squid服务。原创 2010-11-03 17:13:00 · 1046 阅读 · 0 评论 -
PHP+memcached配置
<br />PHP内存缓存功能memcached 2007-11-28 14:06一、memcached 简介在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东。这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序。二、memcached 安装首先是下载 memcached 了,目前最新版本是 1.1.12,直接从官方网站即可下载到 memcach原创 2010-11-02 10:19:00 · 1112 阅读 · 0 评论 -
MySQL语句优化的原则
<br />1、使用索引来更快地遍历表。<br /><br /> 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。<br /><br /> 合理的索引设计要建立在对各种查询的分析和预测上。一般来说: <br /> a.有大量重复值、且经常有范围查询( > ,< ,> =,< =)和order by、group by发生的列,可考虑建立群集索引; <br /> b.经常同时存取多列,且每列都含有重复值可考虑建立组合索引; <br原创 2010-11-02 16:37:00 · 589 阅读 · 0 评论 -
MySQL查询的性能优化
查询是数据库技术中最常用的操作。查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的SQL语句后,执行这条SQL语句,然后将查询到的结果返回给客户端。虽然过程很简单,但不同的查询方式和数据库设置,对查询的性能将会有很在的影响。因此,本文就在MySQL中常用的查询优化技术进行讨论。讨论的内容如:通过查询缓冲提高查询速度;MySQL对查询的自动优化;基于索引的排序;不可达查询的检测和使用各种查询选择来提高性能。一、 通过查询缓冲提高查询速度一般我们使用SQL语句进行查转载 2010-11-01 11:13:00 · 605 阅读 · 0 评论 -
利用mysql的inet_aton()和inet_ntoa()函数存储IP地址
<br />利用mysql的inet_aton()和inet_ntoa()函数存储IP地址原创 2010-10-28 17:53:00 · 658 阅读 · 0 评论 -
MySQL 5.1分区技术初探(六)
<br />3.3 连接查询 <br /> 同样地,对于连接查询,在有没有分区的条件下,将有性能3倍左右的差距。对于更大的数据量,可能会有更大的性能差距。SQL如下: <br /> select count(*) from salaries s left join employees e on s.emp_no=e.emp_no where s.from_date between '1999-01-01' and '1999-12-31' ; <br /><br />无采用原创 2010-10-21 13:47:00 · 618 阅读 · 0 评论 -
MySQL 5.1分区技术初探(一)
<br />. 背景介绍 <br /> 当 MySQL中一个表的总记录数超过了1000万后,会出现性能的大幅度下降吗?答案是肯定的,但是性能下降的比率不一而同,要看系统的架构、应用程序,甚至还要根据索引、服务器硬件等多种因素而定。比如FCDB和SFDB中的关键词,多达上亿的数据量,分表之后的单个表也已经突破千万的数据量,导致单个表的更新等均影响着系统的运行效率。甚至是一条简单的SQL都有可能压垮整个数据库,如整个表对某个字段的排序操作等。目前,针对海量数据的优化主要有2中方法:大表拆转载 2010-10-21 13:39:00 · 737 阅读 · 0 评论 -
MySQL 5.1分区技术初探(五)
<br />3.1 单表查询 <br /> 从销售记录中找到1999年整年的销售记录有多少条,这个很简单,查询语句如下: <br /> select count(*) from salaries s where s.from_date between "1999-01-01" and "1999-12-31" ; <br /> 那么对于分区前后的查询性能却有很大的差别: <br /><br /> 通过如上可知,利用分区之后它只需扫描p16分区,访问的记录明显减少,所以性能自然有转载 2010-10-21 13:46:00 · 655 阅读 · 0 评论 -
MySQL 5.1分区技术初探(三)
<br />2.3 LIST分区 <br /> LIST分区与RANGE分区有类似的地方,举个与例1类似的例子如下: <br /> 例3. 假定你创建了一个如下的一个表,该表保存有20家音像店的职员记录,这20家音像店的编号从1到20。 而这20个音像店,分布在4个有经销权的地区,如下表所示: <br />地区 商店ID 号 <br />北区 3, 5, 6, 9, 17 <br />东区 1, 2, 10, 11, 19, 20 <br />西区 4, 12转载 2010-10-21 13:42:00 · 946 阅读 · 0 评论 -
innodb_flush_log_at_trx_commit
innodb_buffer_pool_size如 果用Innodb,那么这是一个重要变量。相对于MyISAM来说,Innodb对于buffer size更敏感。MySIAM可能对于大数据量使用默认的key_buffer_size也还好,但Innodb在大数据量时用默认值就感觉转载 2011-09-15 21:30:22 · 526 阅读 · 0 评论