让我们假设执行了一次搜索,它错过了索引并执行了一次全表扫描。就本问题而言:
SELECT * FROM bigtable WHERE name like '%someone%'这将需要对name字段执行全表扫描。是否知道在postgres、mysql、h2或sqlite等开源数据库上使用什么字符串搜索算法进行这些全表扫描?我猜这些数据库的每一块都是优化的(即使操作会很慢),所以我想知道在执行这些全表扫描/没有任何类型的索引时使用了什么不同的技术。
发布于 2019-09-09 11:15:37
对于MySQL来说,它看起来并不是很优化。对于多字节字符,这是一个使用memcmp进行的相对简单的迭代。请参阅source
不确定是否有其他引擎。
https://stackoverflow.com/questions/57847325
复制相似问题