我有下一个无害的表: id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, internal_id bigint(20) UNSIGNED NOT NULL, event_datetime DATETIME NOT NULL, status tinyint(3) UNSIGNED NOT NUL
让我们假设执行了一次搜索,它错过了索引并执行了一次全表扫描。就本问题而言: SELECT * FROM bigtable WHERE name like '%someone%' 这将需要对name字段执行全表扫描。是否知道在postgres、mysql、h2或sqlite等开源数据库上使用什么字符串搜索算法进行这些全表扫描?我猜这些数据库的每一块都是优化的(即使操作会很慢),所以我想知道在执行这些全表扫描/没有任何类型的索引时使用了什么不同
我有一个网站,它依赖于数据库查询相当严重时,自定义结果被要求。对于某些数据,这些查询内部连接大约6个不同的表,这些表中的数据在很长一段时间内保持静态。我一直在考虑创建一个javascript数组,并使用方法1查找数据,以删除一些内部连接,但不是全部,但足以确保我的数据库不会溢出。我有一个查询示例。我正在使用mysql,我也在考虑用WHERE ID IN替换inner join以提高查询速度。我还可以缓存数组结果以使其更快,数组数据是通过一次性查询生成的。我的数据库服务器与我的webapp服务器是分开的