PHP使用MemCache加速MySql速度,提高数据库负载

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

————摘自AMH面板简介

博客站的服务器用的AMH的面板没有自己编译PHP之类 应用中心直接安装了MemCache服务器

如果用自己编译 http://memcached.org/ 去官网下载安装就可以了,这里就不多说了~

安装完后,确保PHP服务器支持MemCache拓展,如果不支持可以到下面两个地址安装依赖库

https://launchpad.net/libmemcached/1.0/1.0.4/+download/libmemcached-1.0.4.tar.gz

http://pecl.php.net/get/memcached-2.0.1.tgz

安装完后phpinfo()查看是否支持MemCache功能,如果支持就可以进行下一步了

MemCache不修改的话应该是用默认口11211

首先先测试下能不能正常用

$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set(‘test‘, ‘ok‘, 0,60);
$mem->get(‘test‘);

php执行上面代码,如果输出ok则程序正常,可以使用。

我的想法大致是这样的,首先判断一下 当前数据是否在MemCache数据库有存储,如果有直接输出,不存在则调用mysql数据并存储输出。

这样大致就可以实现数据的储存了,我ihxvip就是这样实现的,下面给一个类似查询的栗子吧,使用mysqli

首先第一步,创建

$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);

然后直接if数据是否存在

if($mem->get($data) ==‘‘){

等于空则开始使用数据库,并且存储进MemCache

$db = new mysqli(sqlhost,sqluser,sqlpass,sqldata);
$db->query("set names ‘UTF8‘");
$rows = $db->query("SELECT * FROM test where id = data");
if($row = $rows->fetch_array()){
$mem->set($data, $row, 0, 300);
}

处理好后,差不多就行了,反正这玩意就是放在程序头运行,需要数据处,直接使用get获取$mem->get($data) 就可以了

如果想要方便点,你可以放进一个函数里,反正大体我就是这样处理的,使用请自行修改,这里不过思路而已

不过用了memcache速度真的没的说,处理速度比mysql 6多了

时间: 2024-08-03 19:14:49

PHP使用MemCache加速MySql速度,提高数据库负载的相关文章

使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

转载自脚本之家 http://www.jb51.net/article/51831.htm  作者:忙碌的松鼠 对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下Memcache和MySQL数据库交互过程的流程关系,了解Memcache的中间缓存层作用,从而深入了解Memcache机制原理. Memcache和MySQL

mysql 如何提高批量导入的速度

mysql 如何提高批量导入的速度 最近一个项目测试,有几个mysql数据库的表数据记录达到了几十万条,在搭建测试环境 导入 测试数据时,十分慢.在网上搜索了一下,有下面一些方法可以加快mysql数据库导入数据的速度:0. 最快的当然是直接 copy 数据库表的数据文件(版本和平台最好要相同或相似):1. 设置 innodb_flush_log_at_trx_commit = 0 ,相对于 innodb_flush_log_at_trx_commit = 1 可以十分明显的提升导入速度:2. 使

提高数据库查询速度的几个思路

提高数据库查询速度的几个思路 :1.缓存,在持久层或持久层之上做缓存;2.数据库表的大字段剥离,保证单条记录的数据量很小; 3.恰当地使用索引;4.必要时建立多级索引; 5.分析Oracle的执行计划,通过表数据统计等方式协助数据库走正确的查询方式,该走索引就走索引,该走全表扫描就走全表扫描; 6.表分区和拆分,无论是业务逻辑上的拆分(如一个月一张报表.分库)还是无业务含义的分区(如根据ID取模分区);7.RAC;8.字段冗余,减少跨库查询和大表连接操作; 9.数据通过单个或多个JOB生成出来,

提高数据库处理查询速度

提高数据库处理查询速度 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<

mySQL (关系型数据库管理系统)

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件. MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. MySQL所使用的 SQL 语言是用于访问

合理配置MySQL缓存 提高缓存命中率

众所周知,系统读取数据时,从内存中读取要比从硬盘上速度要快好几百倍.故现在绝大部分应用系统,都会最大程度的使用缓存(内存中的一个存储区域),来提高系统的运行效率.MySQL数据库也不例外.在这里,笔者将结合自己的工作经验,跟大家探讨一下,MySQL数据库中缓存的管理技巧:如何合理配置MySQL数据库缓存,提高缓存命中率. 一.什么时候应用系统会从缓存中获取数据? 数据库从服务器上读取数据时,可以从硬盘的数据文件中获取数据,也可以从数据库缓存中读取数据.现在数据库管理员需要搞清楚的是,在什么样的情

MySQL学习之一数据库简介

1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,长期储存在计算机内.有组织的.可共享的数据集合. 数据库中的数据指的是以一定的数据模型组织.描述和储存在一起.具有尽可能小的冗余度.较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享. 2.主要特点 ⑴ 实现数据共享 数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享. ⑵ 减少数据的冗余度 同文件系统相比,由于数据库实现了数据共享,从而避免

如何提高数据库性能

一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分为以下五个阶段: 1.数据库表设计 项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分就是对表结构设计.对于数据库来说,这点很重要,如果设计不当,会直接影响访问速度和用户体验.影响的因素很多,比如慢查询.低效的查询语句.没有适当建立索引.数据库堵塞(死锁)等.当然,有测试工程师的团队

mysql基础和数据库的优化

Mysql基础... 4 Mysql介绍... 4 登录mysql mysql –u root –p[掌握]... 4 SQL语言... 4 DCL. 4 grant. 4 revoke. 4 DDL. 4 建库... 4 删库... 4 建表... 4 看表结构... 5 删表... 5 修改表... 5 DML[重点]... 5 增加... 5 删除... 5 修改... 5 查看... 5 排序... 5 总数... 5 求和... 5 平均... 6 最大... 6 最小... 6 表连