mysql - 索引对 mysql MEMORY 表有帮助吗?

标签 mysql memory optimization

我正在优化一个 3 GB 的表作为 MEMORY 表,以便对其进行一些分析,我很好奇添加索引是否对 MEMORY 表有帮助。由于数据无论如何都在内存中,这只是多余的吗?

最佳答案

不,它们不是多余的。

是的,继续使用索引。

由于全表扫描在内存中的速度有多快,在具有非索引列的较小表上访问内存表的速度可能看起来几乎与索引表相同,但随着表的增长或加入它们一起制作更大的结果集会有不同。

无论引擎使用何种存储方式(磁盘/内存),只要存储引擎支持,适当的索引都会提高性能。索引的实现方式可能不同,但我知道它们是在 MEMORY、INNODB 和 MyISAM 表类型中实现的。顺便说一句:MEMORY 表中索引的默认方法是使用散列而不是 B 树。

此外,我通常不建议对您的存储引擎进行编码。今天的内存表明天可能需要更改为 innodb——SQL 和模式应该独立存在。

关于mysql - 索引对 mysql MEMORY 表有帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14757695/

相关文章:

c# - 对关系的困惑

memory - 为什么会有栈和堆?

c# - 我应该关注 .NET 字典的速度吗?

c++ - 优化:昂贵的分支与便宜的比较

MySQL、Excel 和 Windows 计算器对同一表达式显示不同的结果

mysql - Join 和 Group by Clause 给出了错误的输出

c - 可以将用户内存中的字符串传递给 printk 吗?

database - 将带有参数的对象存储在数据库中并获取它们

java - 如何使用 JSP 连接 MySQL 数据库并检索和检查数据?

swift - Swift 中的内存使用