我曾经有一个包含2500万条记录的MySQL数据库表,这使得即使是一个简单的COUNT(*)
个查询也需要几分钟才能执行.我最终制作了分区,将它们分成几个表.我想问的是,有没有什么模式或设计技术来处理这类问题(大量记录)?在处理大量记录时,MSSQL和Oracle哪个更好?
P.S
上面提到的COUNT(*)
个问题只是一个示例,实际上应用程序确实有CRUD功能和一些聚合查询(用于报告),但没有什么真正复杂的东西.只是由于表量的原因,执行这些查询需要相当长的时间(几分钟
我曾经有一个包含2500万条记录的MySQL数据库表,这使得即使是一个简单的COUNT(*)
个查询也需要几分钟才能执行.我最终制作了分区,将它们分成几个表.我想问的是,有没有什么模式或设计技术来处理这类问题(大量记录)?在处理大量记录时,MSSQL和Oracle哪个更好?
P.S
上面提到的COUNT(*)
个问题只是一个示例,实际上应用程序确实有CRUD功能和一些聚合查询(用于报告),但没有什么真正复杂的东西.只是由于表量的原因,执行这些查询需要相当长的时间(几分钟
见Why MySQL could be slow with large tables及COUNT(*) vs COUNT(col)
确保你在计算的列上有索引.如果服务器有大量RAM,请考虑增加MySQL的缓冲区大小.确保磁盘配置正确——启用DMA,不与交换分区共享驱动器或电缆,等等.