項目環(huán)境背景:
公司的關于銷售排行的數(shù)據(jù)已經達到了2千多萬條,在查詢數(shù)據(jù)庫需要等待的時間增長。因此想優(yōu)化查詢速度。
1.合理建立索引
根據(jù)表的設計,合理建立相關的索引,因為涉及到一些公司機密,這里不方便寫太多,有興趣的童鞋可以自行搜索資料。
2.合理分表
根據(jù)業(yè)務需求進行合理分表,將不常用到的的數(shù)據(jù)分到另外一張表,例如將每三個季度或者1年為一個周期。如果數(shù)據(jù)涉及到了好幾年前,可以把幾年前的數(shù)據(jù)放到另外一個數(shù)據(jù)庫維護。把專注度放在近期。
3.緩存技術
可以把一些經常會查詢的數(shù)據(jù)做一些緩存。
本次采用redis ,高性能key-value 數(shù)據(jù)庫。
原因:
性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
豐富的數(shù)據(jù)類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類型操作。
原子 – Redis的所有操作都是原子性的,同時Redis還支持對幾個操作全并后的原子性執(zhí)行。
豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。
本次是利用php鏈接redis 進行實際的例子。
1.到github找到相關版本號的phpredis
https://github.com/phpredis/phpredis/releases
將相關的php插件放到相關的ext 路徑下。

2.查看插件是否配置成功
成功例子:

3.啟動redis
1.運行 redis-server.exe redis.windows.conf
2.另外啟動一個命令窗口,redis-cli
3.編寫php鏈接redis
代碼:
<?php
//connect redis
// $redis =new Redis();
// $redis->connect('127.0.0.1',6379);
// echo "Connect to server sucessfully<br>";
// echo "Server is running : ".$redis->ping();
//連接本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully<hr>";
//存儲數(shù)據(jù)到列表中
// $redis->lpush("tutorial-list", "Redis");
// $redis->lpush("tutorial-list", "Mongodb");
// $redis->lpush("tutorial-list", "Mysql");
// 獲取存儲的數(shù)據(jù)并輸出
$arList = $redis->lrange("tutorial-list", 0 ,50);
echo "Stored string in redis";
print_r($arList);
?>

redis簡單set 數(shù)據(jù)php方式:
<?php
//連接本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('cc',31);
if ($redis) {
echo "success";
}
?>

redis 簡單get數(shù)據(jù) php方式
<?php
//連接本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo $redis->get('cc');
?>
經過php獲得的數(shù)據(jù)。
