我曾经有一个包含2500万条记录的MySQL数据库表,这使得即使是一个简单的COUNT(*)个查询也需要几分钟才能执行.我最终制作了分区,将它们分成几个表.我想问的是,有没有什么模式或设计技术来处理这类问题(大量记录)?在处理大量记录时,MSSQL和Oracle哪个更好?

P.S 上面提到的COUNT(*)个问题只是一个示例,实际上应用程序确实有CRUD功能和一些聚合查询(用于报告),但没有什么真正复杂的东西.只是由于表量的原因,执行这些查询需要相当长的时间(几分钟

推荐答案

Why MySQL could be slow with large tablesCOUNT(*) vs COUNT(col)

确保你在计算的列上有索引.如果服务器有大量RAM,请考虑增加MySQL的缓冲区大小.确保磁盘配置正确——启用DMA,不与交换分区共享驱动器或电缆,等等.

Database相关问答推荐

Django Save 方法在try 向表中添加新记录时出错

从仅连接器电源查询制作图表

如何高效地存储 100 万个单词并通过starts_with、contains 或ends_with 进行查询?

为什么 INNER JOIN 不等于(!=)永远挂起

使用自动递增主键将 csv 导入 sqlite

Postgresql:优化数字字段的列大小

需要未提供的参数@ID?

如何更改 Heroku 中的列类型?

如何将新架构添加到现有的 Visual Studio 数据库项目?

CouchDB 和 Lotus Notes 有什么区别?

如何在 DB2 的单个更新语句中更新多个列

应用程序服务器 JDBC 资源的 DataSource 或 ConnectionPoolDataSource

数据库表中的索引有什么缺点?

应用程序用户应该是数据库用户吗?

在数据库中使用数组是不好的设计吗?

是否有标准的Electron 商务数据库架构来将折扣/税收/礼券应用于产品?

什么是非关系数据库的例子?

Sqlite 判断表是否为空

有哪些不同类型的索引,每种索引的好处是什么?

如何在 SQLServer 数据库的两个实例之间复制数据记录