云樞智聯視角
關注互聯網,關注技術開發,透析與分享移動互聯網行業最新動態高并發緩存mysql的配置存儲過程
時間:2019-02-17 13:41:01 閱讀:86241次 分類:常見問題
緩存機制 緩存集群
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年,經過20多年定制開發經驗,積累了大量技術儲備和定制開發經驗,是一家集軟件研發、互聯網應用為一體的綜合信息技術服務提供商。公司擁有核心的策劃團隊和專業的技術研發團隊,致力于采用領先的信息技術,長期為涉及智慧園區/廠區/校園領域的各個企業提供快速、高效、安全的信息技術支持。公司立足智慧園區和智慧教育行業,通過軟硬件的研發和互聯網應用,疏通各企業間“端到端”的信息傳輸,靈活滿足智慧園區和智慧教育企業間不同用戶的需求,為其提供完善的信息化解決方案。
園區管理系統,提供智慧園區綜合管理系統,智慧園區設計方案咨詢,智慧園區管理系統、...