当前位置:网站首页 >  攻略

苹果CMS十和十点主流版本数据库零基础优化全流程实操指南

时间:2026年06月10日 03:29:13 来源:易频IT社区
优化前的必要准备:全量备份 核心原则:没有备份绝不操作优化! 操作步骤1:phpMyAdmin全量备份 1. 登录服务器的phpMyAdmin后台(地址通常为`http://你的域名/phpmyadmin`或服务器面板指定地址) 2. 左侧列表选中苹果CMS对应的数据库(前缀一般是`mac_`,记不清的话看`/inc/config.php`里的`$db['database']`配置) 3. 顶部导航栏点击导出 4. 导出方式选自定义 - 显示所有可能的选项 5. 确保选中所有数据表(默认已全选) 6. 格式保持默认SQL 7. 勾选添加 DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER 语句 8. 点击底部执行,自动下载.sql格式的备份文件到本地 操作步骤2:命令行全量备份(可选,适合服务器无phpMyAdmin的情况) 1. SSH连接到服务器 2. 执行以下命令(替换大写的参数为你的实际配置): ```bash mysqldump -uDB用户名 -pDB密码 DB数据库名 > /root/maccms_backup_$(date +%Y%m%d_%H%M%S).sql ``` 3. 执行后没有任何报错即成功,备份文件保存在`/root/`目录下 第一步:清理无用数据(占优化后性能提升的60%以上) 子步骤1:清理缓存表 1. 在phpMyAdmin左侧选中苹果CMS数据库 2. 找到前缀为`mac_cache`的表,点击右侧操作 3. 找到删除数据(TRUNCATE),点击并确认(注意是TRUNCATE不是DROP表) 4. 重复上述操作清理`mac_session`(如果是10.2+版本,`mac_session`已改为Redis或文件,不需要操作) 子步骤2:清理失效的采集数据 1. 点击顶部SQL标签 2. 复制以下SQL并执行(自动清理半年前已过期的采集日志、采集失败记录、已删除的视频缓存关联数据): ```sql -- 清理过期采集日志(默认保留6个月,可修改WHERE后的时间) DELETE FROM mac_collect_log WHERE c_time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 6 MONTH)); -- 清理采集失败记录 DELETE FROM mac_collect_failed; -- 清理已删除视频的关联数据(10.x通用) DELETE FROM mac_data WHERE d_id NOT IN (SELECT v_id FROM mac_vod); DELETE FROM mac_play WHERE p_id NOT IN (SELECT v_id FROM mac_vod); DELETE FROM mac_down WHERE d_id NOT IN (SELECT v_id FROM mac_vod); DELETE FROM mac_picture WHERE pic_id NOT IN (SELECT v_id FROM mac_vod); DELETE FROM mac_tag_relation WHERE tr_mid=1 AND tr_rid NOT IN (SELECT v_id FROM mac_vod); DELETE FROM mac_actor_relation WHERE ar_mid=1 AND ar_rid NOT IN (SELECT v_id FROM mac_vod); DELETE FROM mac_role_relation WHERE rr_mid=1 AND rr_rid NOT IN (SELECT v_id FROM mac_vod); DELETE FROM mac_comment WHERE c_mid=1 AND c_rid NOT IN (SELECT v_id FROM mac_vod); ``` 3. 执行后看左侧表的行数,会大幅下降 子步骤3:清理冗余评论 1. 点击顶部SQL标签 2. 复制以下SQL并执行(自动清理30天前未审核的垃圾评论、重复内容评论): ```sql -- 清理30天前未审核的评论 DELETE FROM mac_comment WHERE c_status=0 AND c_time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)); -- 清理同一IP同一内容重复3次以上的评论(保留最新1条) DELETE a FROM mac_comment a, ( SELECT c_ip, c_content, MAX(c_id) max_id FROM mac_comment GROUP BY c_ip, c_content HAVING COUNT() > 3 ) b WHERE a.c_ip = b.c_ip AND a.c_content = b.c_content AND a.c_id < b.max_id; ``` 第二步:数据表结构优化(修复碎片、添加索引) 子步骤1:修复并优化所有表 1. 回到数据库左侧列表,点击顶部结构标签 2. 勾选所有表(全选框在列表顶部) 3. 底部下拉框选择修复表,点击执行 4. 再次勾选所有表,下拉框选择优化表,点击执行 5. 执行后显示“OK”即完成 子步骤2:添加缺失的索引(大幅提升查询速度) 1. 点击顶部SQL标签 2. 复制以下SQL并执行(这些是苹果CMS10.x官方未默认加但高频查询的索引,不会覆盖原有索引): ```sql -- mac_vod表高频查询索引 ALTER TABLE mac_vod ADD INDEX idx_v_status (v_status); ALTER TABLE mac_vod ADD INDEX idx_v_type (v_type); ALTER TABLE mac_vod ADD INDEX idx_v_time (v_time); ALTER TABLE mac_vod ADD INDEX idx_v_hits (v_hits); ALTER TABLE mac_vod ADD INDEX idx_v_hits_month (v_hits_month); ALTER TABLE mac_vod ADD INDEX idx_v_hits_week (v_hits_week); ALTER TABLE mac_vod ADD INDEX idx_v_hits_day (v_hits_day); -- mac_tag表索引 ALTER TABLE mac_tag ADD INDEX idx_tag_name (tag_name); -- mac_tag_relation表索引 ALTER TABLE mac_tag_relation ADD INDEX idx_tr_mid_rid (tr_mid, tr_rid); ALTER TABLE mac_tag_relation ADD INDEX idx_tr_mid_tid (tr_mid, tr_tid); -- mac_comment表索引 ALTER TABLE mac_comment ADD INDEX idx_c_mid_rid (c_mid, c_rid); ALTER TABLE mac_comment ADD INDEX idx_c_status (c_status); ``` 第三步:修改配置参数(长期优化) 子步骤1:修改苹果CMS自身配置 1. 用FTP工具(FileZilla、WinSCP均可)下载网站根目录下的`/inc/config.php` 2. 找到以下参数并修改(可直接覆盖原配置段): ```php // 缓存配置 $MAC['cache']['type'] = 'file'; // 如果有Redis,改成'redis'(后面附Redis配置) $MAC['cache']['prefix'] = 'mac_'; $MAC['cache']['expire'] = 3600; // 缓存时间1小时,可根据更新频率调整 $MAC['cache']['page'] = true; // 开启页面静态缓存 $MAC['cache']['page_time'] = 1800; // 页面静态缓存30分钟 // 数据库查询优化 $MAC['db']['cache'] = true; // 开启数据库查询缓存 $MAC['db']['cache_time'] = 1800; // 数据库查询缓存30分钟 $MAC['db']['debug'] = false; // 必须关闭调试模式 ``` 3. 如果有Redis服务器,改成以下配置: ```php // Redis缓存配置(替换REDIS_IP、REDIS_PORT、REDIS_PASSWORD为你的实际值) $MAC['cache']['type'] = 'redis'; $MAC['cache']['prefix'] = 'mac_'; $MAC['cache']['expire'] = 3600; $MAC['cache']['page'] = true; $MAC['cache']['page_time'] = 1800; $MAC['cache']['redis']['host'] = 'REDIS_IP'; $MAC['cache']['redis']['port'] = REDIS_PORT; $MAC['cache']['redis']['password'] = 'REDIS_PASSWORD'; $MAC['cache']['redis']['select'] = 0; ``` 4. 保存并覆盖原`/inc/config.php`文件 子步骤2:修改MySQL配置(可选,VPS/云服务器用户可操作) 1. 找到MySQL配置文件(CentOS通常在`/etc/my.cnf`,Ubuntu/Debian通常在`/etc/mysql/mysql.conf.d/mysqld.cnf`) 2. 用vim或nano编辑器打开,在`[mysqld]`段下添加或修改以下参数(根据服务器内存调整,这里按2G内存示例): ```ini 2G内存MySQL优化配置 query_cache_type = 1 query_cache_size = 64M query_cache_limit = 2M innodb_buffer_pool_size = 1G innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT key_buffer_size = 128M tmp_table_size = 64M max_heap_table_size = 64M sort_buffer_size = 4M read_buffer_size = 2M read_rnd_buffer_size = 4M ``` 3. 保存后重启MySQL服务(CentOS7+执行`systemctl restart mysqld`,Ubuntu/Debian执行`systemctl restart mysql`) 优化后的验证 1. 访问网站前台,检查页面加载速度(可以用浏览器开发者工具Network标签看首次加载时间) 2. 进入phpMyAdmin,查看数据库总大小、表碎片情况(应该大幅减少) 3. 检查苹果CMS后台的数据采集、视频添加等功能是否正常

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图