就像确认一样,mysql中搜索引擎的最佳选择是什么?搜索单词或数字?
让我们想象一下学生的数据库。应该有一个学生桌,另一个用于课程,另一个用于注册(这会将学生与具有唯一ID的课程相关联)或者只是对所有学生数据和课程名称进行表格注册?
只考虑性能,不要担心结构和其他任何事情,一旦完成所有过程,我的软件安装在计算机中,与服务器同步一切。
关键在于创建一个包含数千个注册的日志,并将其放在一个能够进行小组课程,学生搜索,制作图表和所有内容的系统中。当php开始查询所有数据时,我担心的是mysql性能。
什么会更好?使用ID搜索成千上万的行并将其连接起来或使用名称和字符串搜索数千行最好的问候
简单回答:
尽可能避免使用未引用的文本字段,以及依赖于数据库将用于(仓库或生产)的索引的良好度量标准,并在可能的情况下强制执行3NF ...如果您不建议低于3NF我不确定这是什么意思,而高于3NF可能对你,人类来说太复杂,总是要处理。
数字和字符串之间的性能差异很小。性能的主要组成部分是需要触摸的行数。另一个查询的开销也很昂贵。
所以,这是低效的:
SELECT id FROM students WHERE name... -- grab a bunch of ids
SELECT ... FROM foo WHERE student_id IN (...) ... -- then use them
这是更好的,即使它在逻辑上做同样的事情:
SELECT ...
FROM students
JOIN foo ON foo.student_id = students.id
WHERE name ...