有一个用户库共有550W左右的数据,查询次数一天约有100W次左右。为了防止慢查询,所以简单地分了256个表。
下面是表结构:
查询语句都是使用主键查询的:
SELECT * FROM t_sign_user_xx WHERE fusrid=xxx;
但是很奇怪,mysql的慢查询日志里,这个数据库里面的数据每天都会出现数百次慢查询记录。
查了很久都没查出原因。后来无意中想到对表进行优化是否会好点。于是对所有表执行了
OPTIMIZE TABLE `t_sign_user_xx`
效果非常显著,机器的平均压力从原来的3~5下降到现在的1~2了,并且这个库再也没有出现过慢查询。
以前别人对我说,MyIsam表在经常删数据的情况下才需要优化。我这个表是没有删除操作的,只有SELECT、UPDATE、和INSERT操作,所以我忽略了表优化。看来只要有更新操作的MyIsam库,都应该隔一段时间优化一遍才行。
- 大小: 42.5 KB
分享到:
相关推荐
可能有人会说你MyISAM无法抗太多写操作,但是我可以通过架构来弥补,说个我现有用的数据库平台容量:主从数据总量在几百T以上,每天十多亿 pv的动态页面,还有几个大项目是通过数据接口方式调用未算进pv总数,(其中...
### MyISAM与InnoDB的异同 在MySQL数据库系统中,存储引擎是数据库的核心组件之一,它负责处理数据的存储、检索等底层操作。MyISAM和InnoDB是MySQL中最常用的两种存储引擎,它们各自拥有不同的特点和适用场景。 ##...
MySQL数据库系统提供了多种存储引擎,其中最常用的两种是MyISAM和InnoDB。它们各自具有独特的特性和适用场景,理解二者的性能差异对于优化数据库设计至关重要。 MyISAM引擎是MySQL早期的默认存储引擎,以其高速度和...
- **查询速度**:通常情况下,MyISAM在读取密集型的场景下表现更好,因为它不需要维护复杂的MVCC(多版本并发控制)机制,减少了额外的开销。 - **索引查找**:MyISAM通过直接访问文件的OFFSET位置来查找记录,而...
### MySQL的MyISAM表类型解决并发读写问题 在MySQL数据库系统中,MyISAM是一种非常常用的存储引擎。它以其高效性和简单的结构而在许多场景下得到广泛应用,尤其是在那些读取操作远多于写入操作的应用场景中。然而,...
### 基于代价的慢查询优化建议 #### 一、背景 在现代数据库系统中,慢查询被视为一种显著的风险因素。它不仅增加系统的负担,消耗更多的CPU资源和I/O资源,还可能导致业务中断。因此,针对慢查询的优化成为确保...
MySQL中的存储引擎MyISAM和InnoDB在处理索引上有显著的差异,这些差异主要体现在索引的组织方式以及对数据存储的影响上。两者都基于B+树这种高效的索引结构,但具体实现有所不同。 首先,MyISAM的索引采用非聚集...
自己总结的 关于mysql存储引擎myisam innodb 的比较 两者区别 对面试会很有帮助
在处理索引碎片时,MyISAM存储引擎会因为索引的物理顺序与逻辑顺序不同而导致查询性能下降。 最后,作者提到解决数据碎片的方法。虽然文章没有详细阐述解决数据碎片的具体技术手段,但一般来说,解决数据碎片的方法...
"Mysql(MyISAM)的读写互斥锁问题的解决方法" 在Mysql(MyISAM)中,读写互斥锁问题是常见的性能瓶颈之一。为了解决这个问题,需要了解MyISAM的读写机制和锁机制。MyISAM在读操作占主导的情况下是很高效的,但是一旦...
本文实例讲述了mysql更改引擎(InnoDB,MyISAM)的方法,分享给大家供大家参考。具体实现方法如下: mysql默认的数据库引擎是MyISAM,不支持事务和外键,也可使用支持事务和外键的InnoDB。 查看当前数据库的所支持的...
2. **监控性能变化**:监控数据库性能的变化,如果发现查询速度变慢或其他性能问题,应及时检查并处理表碎片。 3. **合理设计表结构**:在设计数据库表结构时,考虑到数据的生命周期和访问模式,合理规划表的存储...
- **MyISAM**在删除行后会留下空隙,这可能导致碎片问题。 - **InnoDB**则会物理删除行,并且可以通过设置参数来优化空间回收。 5. **数据导入导出**: - **MyISAM**支持`LOAD DATA INFILE`语句直接从文件导入...
- **慢查询日志**:慢查询日志是一种非常有用的工具,用于记录执行时间过长的SQL语句。通过分析这些慢查询,可以发现并优化低效的查询。 - 开启慢查询日志的方法有两种:一种是在MySQL配置文件`my.cnf`或`my.ini`...
因此,MyISAM 在处理大量的读取请求时性能较高,但在写入操作较多的情况下性能会受到较大影响。 2. **缓存机制**:InnoDB 和 MyISAM 在缓存方面的设计也有所不同。InnoDB 的数据缓存机制更加复杂,除了支持数据...
在InnoDB中,使用索引可以提高查询速度,而MyISAM则需要扫描整个表来查询数据。 应用场景 InnoDB和MyISAM在应用场景方面也有所不同。在InnoDB中,适合高并发和高性能的应用场景,而MyISAM则适合读取密集型的应用...
创建合适的索引可以显著提升查询性能,但过度索引可能导致写操作变慢,因此索引设计需要平衡读写需求。 接下来是**存储过程**,这是预编译的SQL语句集合,可以封装一系列操作并重复调用。存储过程可以提高代码复用...
相比之下,MyISAM不支持事务,只能依赖于手动操作来保证原子性,这在多用户并发环境下可能导致数据不一致的问题。 在数据恢复能力方面,InnoDB的redo log机制保证了在系统崩溃后的快速恢复,而MyISAM如果出现故障,...
- 分析查询:使用`EXPLAIN`分析SQL查询,找出慢查询并优化。 - 索引优化:根据查询模式添加合适的索引,减少全表扫描。 - 内存调整:根据服务器资源调整相关内存参数,如`key_buffer_size`、`query_cache_size`等...