最近运营一直反馈后台审核页面很慢,我看了一下是分页慢导致的。这个表有300多万条数据,给后台用,count要5秒太慢了。
select count(*) from ck_album_status where album_status = 'new'; mysql> explain select count(*) from ck_album_status where album_status = 'new'; +----+-------------+-----------------+------+------------------------------+--------------+---------+-------+---------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-----------------+------+------------------------------+--------------+---------+-------+---------+--------------------------+ | 1 | SIMPLE | ck_album_status | ref | idx_alb_stat,idx_alb_stat_id | idx_alb_stat | 98 | const | 1384320 | Using where; Using index | +----+-------------+-----------------+------+------------------------------+--------------+---------+-------+---------+--------------------------+ 1 row in set (0.01 sec) KEY `idx_alb_stat` (`album_status`) USING BTREE,
删掉这个表的数据到20万以下还是很慢
但奇怪的是发现data_length还是300多万,通过mysql optimize试试。果然好了:
相关推荐
执行优化的步骤与修复表类似,先登录MySQL命令行,选择要操作的数据库,然后执行 `# OPTIMIZE TABLE `table_name``。 值得注意的是,`OPTIMIZE TABLE` 对于InnoDB存储引擎的表,实际上并不重新组织磁盘上的数据,...
MySQL中的`OPTIMIZE TABLE`命令是一个非常实用的数据库维护工具,主要用于优化和整理数据库表,尤其是在大量数据操作之后。此命令的主要目标是提高查询性能、减少磁盘空间占用以及更新表统计信息。以下是对`OPTIMIZE...
MySQL性能优化是数据库管理员和开发人员的关键技能,它涉及到如何有效地使用SQL语句、存储过程和函数,以提高数据查询速度和系统整体效率。本手册将深入探讨这些关键领域,帮助你理解并实施最佳实践。 在SQL语句...
`OPTIMIZE TABLE` 是MySQL中一个常用的命令,用于对表进行优化,包括重组数据、更新统计信息和释放不再使用的空间。当执行这个命令时,MySQL会重新组织表的数据文件,删除碎片,使数据存储更紧凑。这在删除大量数据...
本文介绍mysql定时批量检查表repair和优化表optimize table的shell脚本,对于MySQL数据库的定期维护相当有用!如下所示: #!/bin/bash host_name=192.168.0.123 user_name=jincon.com user_pwd=jincon.com database...
1. 定期分析和优化表(ANALYZE TABLE和OPTIMIZE TABLE)以更新统计信息和物理结构。 2. 清理不再使用的旧数据,避免数据膨胀。 3. 监控数据库性能,使用工具如MySQL Performance Schema或Percona Toolkit进行诊断。 ...
- 定期分析和优化表(`ANALYZE TABLE` 和 `OPTIMIZE TABLE`),更新统计信息以帮助优化器做出更好的决策。 - 使用慢查询日志追踪并优化慢查询。 - 对于高并发场景,考虑使用分区表来分散负载。 总之,MySQL...
5. **表维护**:脚本还会检查表的碎片情况,建议进行OPTIMIZE TABLE操作以减少存储空间的浪费,提高查询效率。 6. **权限与安全**:虽然这不是性能优化的直接方面,但脚本也会检查数据库的用户权限设置,确保安全性...
3. **维护操作**:MySQL 5.5.8还增强了对分区表的维护功能,例如ALTER TABLE和OPTIMIZE TABLE命令可以更快地完成对分区表的重构和优化。这对于数据量庞大的系统来说尤其关键,因为它允许在不影响业务运行的情况下...
此外,定期进行分析和维护,如分析表统计信息,执行OPTIMIZE TABLE命令,也是保持数据库高效运行的关键步骤。 在MySQL技巧分享部分,可能涉及一些高级话题,如视图的使用来简化复杂查询,存储过程和触发器的创建以...
- **定期优化表**:使用`OPTIMIZE TABLE`命令来整理表空间并重建索引。 3. **服务器配置优化**: - **内存管理**:合理设置缓冲池大小(`innodb_buffer_pool_size`)等参数。 - **并发控制**:根据系统硬件调整...
7. **定期分析与维护**:使用ANALYZE TABLE更新统计信息,OPTIMIZE TABLE整理碎片,保持表的健康状态。 8. **合理分库分表**:通过垂直分割或水平分割,分散数据和查询压力,提升系统并发能力。 9. **使用缓存**:...
- **定期维护数据库**:定期执行ANALYZE TABLE和OPTIMIZE TABLE命令,保持索引统计信息的准确性,减少表碎片。 - **避免SELECT ***:在查询时,只选取实际需要的列,避免使用SELECT *,可以减少数据传输量,提高查询...
9. **定期分析与优化**:使用ANALYZE TABLE和OPTIMIZE TABLE命令定期分析和优化表,更新统计信息,确保查询优化器做出正确的决策。 10. **并发控制**:理解锁机制,如行锁、页锁和表锁,以及死锁检测与解决,对于高...
考虑引入反规范化或物化视图来优化性能。 5. **资源管理与配置**:调整MySQL服务器的配置参数,例如缓冲池大小、最大连接数、线程缓存等,可以有效利用硬件资源。定期监控系统资源使用情况,及时调整参数以应对业务...
16. **定期分析与优化表**:运行`ANALYZE TABLE`和`OPTIMIZE TABLE`命令,以更新统计信息和物理组织。 17. **硬件升级**:提升服务器硬件配置,如增加内存、使用SSD硬盘等,可以显著提高MySQL性能。 18. **并发...
3. 定期分析和优化表:ANALYZE TABLE和OPTIMIZE TABLE命令可更新统计信息和重构数据文件,保持数据库高效运行。 总结,MySQL性能优化是一项综合性的任务,需要结合具体业务场景,从多个角度进行考虑和实践。通过...