高并发缓存mysql的配置存储过程
时间:2019-02-17 13:41:01 阅读:85832次 分类:常见问题
缓存机制 缓存集群
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?
芜湖广丰软件有限公司(原中江网络),成立于2005年,经过10多年定制开发经验,积累了大量技术储备和定制开发经验,是一家集软件研发、互联网应用为一体的综合信息技术服务提供商。公司拥有核心的策划团队和专业的技术研发团队,致力于采用领先的信息技术,长期为涉及智慧园区/厂区/校园领域的各个企业提供快速、高效、安全的信息技术支持。公司立足智慧园区和智慧教育行业,通过软硬件的研发和互联网应用,疏通各企业间“端到端”的信息传输,灵活满足智慧园区和智慧教育企业间不同用户的需求,为其提供完善的信息化解决方案。
园区管理系统,提供智慧园区综合管理系统,智慧园区设计方案咨询,智慧园区管理系统、...