我有一张医院病人的表格,所以随着时间的推移,这张表格可能包含数万行。为每个患者分配一个医院唯一 ID 号 (BIGINT),用作 PRIMARY KEY,其余列是 VARCHAR 或 CHAR,以及单个 DATE 列。据我所知,PRIMARY KEYS 会自动编入索引,因此按患者 ID 进行搜索是最佳的(?)。
可以通过单个字段或此 ID、姓名、地址、出生日期等的组合来搜索患者。我可以通过在每个字段上创建一个索引来优化我的搜索吗?当对这些 INDEXed 字段的组合执行搜索时,这种优化是否也有效,例如
SELECT * FROM patients WHERE first_name="John" AND address="blah blah blah";
???
另外,我假设 MySQL 使用自己的内部算法进行搜索,也许是二进制搜索,用户不能选择或实现自己的算法?