高并发缓存mysql的配置存储过程

php论坛  2015-01-30 05:05:15  来源:1  阅读:158
缓存机制 缓存集群


e-Accelerator,比较特殊,PHP的缓存和加速器。是一个免费开源的PHP加速、优化、编译和动态缓存的项目,它可以通过缓存PHP代码编译后的结果来提高PHP脚本的性能,使得一向很复杂和离我们很远的 PHP脚本编译问题完全得到解决。通过使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载,可以提高PHP应用执行速度最高达10倍。


简单的缓存策略也能大大提升网站性能。
例如,Youtube把首页最新的视频列表缓存60秒,也就是说60秒内并发的request都是从缓存读取的,大大减少了数据库压力。再加上CDN,使得Youtube首页的并发访问速度很快。


mysql 集群读写分离  web server 应用分组
http://www.cnblogs.com/luckcs/articles/2543607.html


图片服务器


http://www.infoq.com/cn/articles/yupoo-partition-database/


服务器选择 tengine


mysql http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/MySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar




mysql 优化------------------------------------------------
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
分库 分表
slow_query_log //慢查询日志
mysql> show global variables like 'slow%';慢查询
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2


查看mysql 链接数
SHOW STATUS LIKE  'threads%';
Threads_created表示创建过的线程数


mysql> show variables like 'thread_cache_size';


根据调查发现以上服务器线程缓存thread_cache_size没有进行设置,或者设置过小,这个值表示可以重新利用保存在缓存中线程的数量,当断开 连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线 程将被重新创建,如果有很多新的线程,增加这个值可以改善系统性能.通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。


1、mysql> set global thread_cache_size=16///重启mysql 后失效
2、编辑/etc/my.cnf 更改/添加
[mysqld]
thread_cache_size=16




---------------------
这是是查询数据库当前设置的最大连接数
mysql> show variables like '%max_connections%';


可以在/etc/my.cnf里面设置数据库的最大连接数
[mysqld]
max_connections = 1000




mysql数据库插入速度和读取速度的调整记录--------------------------
1. innodb_flush_log_at_trx_commit 配置设定为0//2时只有操作系统挂掉时才会丢失数据
2. 将 innodb_autoextend_increment 配置由于默认8M 调整到 128M
3. 将 innodb_log_buffer_size 配置由于默认1M 调整到 16M
4. 将 innodb_log_file_size 配置由于默认 8M 调整到 128M 




分库应用


跟随应用分库,一个总库做整体查询
做数据库同步,做容错(分库同步到总库)
order表 分表查询 中间件 where uid 做库键值查询
中间件拆分uid 找库
mysql 优化------------------------------------------------


mysql 存储过程--------------------------
mysql > DELIMITER //  
mysql > CREATE PROCEDURE demo_in_parameter(IN p_in int)  
-> BEGIN   
-> SELECT p_in;   
-> SET p_in=2;   
-> SELECT p_in;   
-> END;   
-> //  
mysql > DELIMITER ; 




方法一:(直接查询)


select `specific_name` from mysql.proc where db = 'your_db_name' and `type` = 'procedure'


方法二:(查看数据库里所有存储过程+内容)


show procedure status;


方法三:(查看当前数据库里存储过程列表)


select specific_name from mysql.proc ;


方法四:(查看某一个存储过程的具体内容)


select body from mysql.proc where specific_name = 'your_proc_name';


查看存储过程或函数的创建代码 :


show create procedure your_proc_name;
show create function your_func_name;


删除存储过程:


drop procedure your_proc_name;
-----------------------------------------------


页面缓存技术-----------------------------------


if(!$smarty->isCached('index.html')){
}
清除缓存
$smarty->clearCache('index.html');


Thanks Robbie. My job is very good to me in this work very happy. How's your work now?
分享到:

0条评论网友评论

  • 全部评论
加载更多

飞翔船舶

关于飞翔 | 联系我们 | 新手教程 | 隐私声明 | 经营优势 | 常见问题

Copyright © 2010 - 2012 Tencent. All Rights Reserved  工信部备案号:备案号:ICP备1100256