Mysql 我们可以通过统一列来提高查询性能吗?

Mysql 我们可以通过统一列来提高查询性能吗?,mysql,Mysql,我们正在为考试系统开发一个数据库,其中包含大量的问题,因此我有以下列的“QTable”: QuestionNum | BookID | BookSeason | QuestionType和 考虑到我们需要选择一些BookID=5、BookSeason=11和QuestionType=2的问题 哪种方法更适合提高查询性能: 1-从QTable中选择*,其中BookID=5,BookSeason=11,QuestionType=2 或 2-将BookID、BookSeason和QuestionTyp

我们正在为考试系统开发一个数据库,其中包含大量的问题,因此我有以下列的“QTable”:

QuestionNum | BookID | BookSeason | QuestionType

考虑到我们需要选择一些BookID=5、BookSeason=11和QuestionType=2的问题

哪种方法更适合提高查询性能:

1-
从QTable中选择*,其中BookID=5,BookSeason=11,QuestionType=2

2-将BookID、BookSeason和QuestionType统一为QuestionID,如下所示:

QuestionID=“000000”(QuestionNum)+“000”(BookID)+“00”(BookSeason)+“0”(QuestionType)

QestionID的一个示例:“01253305112”(012533是QuestionNum,05是BookID,11是BookSeason,2是QuestionType)

现在,选择BookID=5、BookSeason=11、QuestionType=2的一些问题的查询如下:

从QTable中选择*


如果有更好的想法,我们将不胜感激。

绝对没有理由合并专栏。列应该包含一个“单一”值,而不是一些难以理解的复杂代码

对于此查询:

Select * 
from QTable
where BookID = 5 and BookSeason = 11 and QuestionType = 2;

您需要在
QTable(BookID、BookSeason、QuestionType)
上建立索引。同样的索引也可以,只需查找
BookId
BookId
BookSeason

谢谢您的回答,但我想知道哪一个在这方面性能更好query@KyleMarriot . . . 使用三个键与一个键相等的索引查找应该具有几乎相同的性能。这两种方法都可以,但我想3个整数比较比一个字符串比较快,因为排序问题。