【发布时间】:2020-01-10 19:49:25
【问题描述】:
假设执行了一次搜索,但它错过了索引并进行了全表扫描。就这个问题而言:
SELECT * FROM bigtable WHERE name like '%someone%'
这需要对name 字段进行全表扫描。是否知道在诸如 postgres、mysql、h2 或 sqlite 等开源数据库上的这些全表扫描使用什么字符串搜索算法?我猜这些数据库的最后一块都经过优化(即使操作会很慢),所以想知道在进行这些全表扫描/没有任何索引的情况下使用了哪些不同的技术。
【问题讨论】:
-
I/O 成本通常占很大比例,因此特定的字符串搜索算法并不重要,除非它特别慢,而且不会特别慢。
标签: mysql database algorithm search