热门搜索:  极度深寒

steam

网站数据库优化:MySQL调优和缓存策略_我的网站

饭局狼人杀

A |     

     一键部署OpenClaw        网站慢,很多时候不是带宽不够,而是数据库查询慢。优化MySQL其实就两件事:加索引和用缓存。    先说索引。    7月17日晚上7点多,位于武汉盘龙城万达广场里的一家福彩站点内,突然传来一阵叫声,“老板、老板!我这是不是中了大奖?”发出这声音的,是一位做服装销售的00后小妹,她叫黄鹰(化名)。

B |
  据站点业主介绍,黄鹰年龄不大,但她却是福利彩票的一位忠实粉丝。没索引的查询就是全表扫描,10万条数据能查出你服务器CPU飙到100%。加了索引,查询速度能提升百倍。    -- MySQL索引优化示例    -- 查看慢查询(找出需要优化的SQL)    SELECT * FROM mysql.slow_log    WHERE start_time > NOW() - INTERVAL 1 DAY    ORDER BY query_time DESC LIMIT 10;    -- 用EXPLAIN分析查询计划    EXPLAIN SELECT * FROM articles    WHERE category_id = 5 AND status = 1    ORDER BY created_at DESC LIMIT 20;    -- 如果type是ALL(全表扫描),就需要加索引    CREATE INDEX idx_category_status_time    ON articles(category_id, status, created_at);    -- 复合索引遵循最左前缀原则    -- 即:查询条件从左到右依次命中索引    再说缓存。

C | 领用最多的场景是Redis缓存。近几年来,她几乎隔三差五的就会来店里,而购买最多的,还是各种刮刮乐彩票。  黄鹰说,有一次和好友去福彩站点购买刮刮乐彩票时,好友花20元购买了一张刮刮乐,竟意外中了1000元的奖金。也就是从这之后,不管走到哪里,只要看见有福彩站点,她都会进去随意买上一点。不管能不能中奖,就当是在献爱心,而这爱心,她相信终有一天会有好报的。把查询结果存到Redis里,下次查询直接从Redis取,不用查数据库。

D |     # Redis缓存示例(PHP + Redis)    // 先查缓存    $redis = new Redis();    $redis->connect('127.0.0.1', 6379);    $cacheKey = 'article_list_page_' . $page;    $cached = $redis->get($cacheKey);    if ($cached) {    // 缓存命中,直接返回    echo $cached;    } else {    // 缓存未命中,查数据库    $articles = $pdo->query("SELECT * FROM articles ORDER BY id DESC LIMIT 20")->fetchAll();    $html = renderArticles($articles);    // 存入缓存,过期10分钟    $redis->setex($cacheKey, 600, $html);    echo $html;    }    MySQL本身也有查询缓存,在my.cnf里开启就行。  7月17日,黄鹰和几个好友来到位于盘龙城万达广场里面的一家福彩站点,让销售员拿了一本“多喜乐”的刮刮乐。但注意,数据更新后缓存不会立即失效,对实时性要求高的场景不适合。  “多喜乐”刮刮乐一本20张,单张30元。    # MySQL查询缓存配置(my.cnf)    query_cache_type = 1    query_cache_size = 64M    query_cache_limit = 2M    # InnoDB缓冲池大小(一般设为内存的70%)    innodb_buffer_pool_size = 2G    innodb_log_file_size = 256M    最后,定期清理数据库碎片和日志。在刮开10多张后,有一张先是发现中奖号码是“24”,当刮开最后一行时,上面竟出现了中奖号码“24”。数据量大了,碎片会导致查询变慢。再看下面所对应的奖金,正是“多喜乐”的最高奖100万元。每月跑一次OPTIMIZE TABLE就能解决。

        
    

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!。

E |   7月20日早上,黄鹰就携两个好友一道,现身省福彩中心兑奖处,领走了她的100万大奖。(李建民)。

F |

Current article:http://nxda4a4.linxiuhuaishuangniuzhenrua.bond/list_ciq/6uu.html

Published on:00:00:00