B | 加了索引,查询速度能提升百倍。 -- 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); -- 复合索引遵循最左前缀原则 -- 即:查询条件从左到右依次命中索引 再说缓存。本周台化150万吨PTA装置短停后恢复,逸盛新材料360万吨装置负荷提满,嘉通300+300万吨装置跳停,虹港石化250+250万吨及威联化学250万吨装置重启继续推迟。领用最多的场景是Redis缓存。把查询结果存到Redis里,下次查询直接从Redis取,不用查数据库。
C | # 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里开启就行。