Mysql实现及多字段查询效率

标签 mysql performance algorithm indexing

我想在 MySQL 中通过两个字段搜索一个表:

select * from table where  
90 < x and x < 100 and 
50 < y and y < 60

如果优化此搜索的效率如何? O(日志(n))?

它将实现什么类型的索引和算法? (如果使用标准 B 树或 HashMap ,我说的 O(n.log(n)) 是否正确?)

谢谢

最佳答案

MySQL 中的复杂性通常是不可预测的,以至于用大 O 表示法来表达它几乎毫无意义。关于算法性能的计算机科学类型理论在这种情况下完全崩溃。

最大的问题是 I/O 开销,一旦您需要进行任何类型的磁盘访问,就无法判断该操作需要多长时间。这可能是几毫秒,也可能是几秒,具体取决于系统的负载情况。

通常,您应该进行基准测试以确定您的特定系统和配置的性能特征,即便如此,它也只能给您一个概念。

只有当整个工作集都在内存中并且访问时间在所有关联数据中保持一致时,这些 Big-O 算法才有意义。

关于Mysql实现及多字段查询效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821936/

相关文章:

java - 使用从 sql 数据库中提取的方法返回的多维数组

mysql - 如何使用其他三个表中列的平均值更新一个表中的分数列?

Python mmap - 缓慢访问文件末尾[带测试代码]

algorithm - 如何将形状对齐在一起? (几何最佳拟合算法)

java - 读写分离是否提高了程序效率?

php - 在一个网页中插入多个查询

php - MySQL Pull All records with join 问题

performance - 糟糕的haskell网络性能

sql-server - SQL Server 优化顾问的替代方案?

algorithm - 摊销分析和竞赛题,有什么问题吗?