Mysql faster to use numbers in where clause compared to strings?

Let's say you have 4 types of ratings: Test, Quiz, MiniQuiz and FinalExam

and we store records in the database so

studentid ----- assesType
1 test
2 quiz
3 quiz
4 quiz
5 miniquiz
6 miniquiz
7 final
8 final

it's faster, and a better approach for assigning numbers to each type allows you to:

test = 1 Poll = 2 miniquiz = 3 final = 4

And use this instead of writing.

studentid ----- assesType
eleven
2 2
3 2
4 2
5 3
6 3
7 4
8 5

, ? ..? .

=)

+3
3

, , . , , "" "", . , , , , : , , , .

, , , assesTypes id name . assesType a , id assesTypes. :

CREATE TABLE assesTypes (
   id    int,
   name  varchar(15),
   PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE assessments (
   student_id    int,
   assesType     int,
   mark          int,
   PRIMARY KEY (student_id, assesType),
   FOREIGN KEY (assesType) REFERENCES assesTypes (id)
) ENGINE=INNODB;

assesTypes:

INSERT INTO assesTypes VALUES (1, 'Test');
INSERT INTO assesTypes VALUES (2, 'Quiz');
INSERT INTO assesTypes VALUES (3, 'MiniQuiz');
INSERT INTO assesTypes VALUES (4, 'FinalExam');

assessments:

INSERT INTO assessments VALUES (1, 1, 55);
INSERT INTO assessments VALUES (1, 2, 65);
INSERT INTO assessments VALUES (1, 3, 75);

. INNER JOIN assessments assessTypes :

SELECT a.student_id, at.name, a.mark
FROM   assessments a
JOIN   assesTypes at ON (at.id = a.assesType);

:

+------------+----------+------+
| student_id | name     | mark |
+------------+----------+------+
|          1 | Test     |   55 |
|          1 | Quiz     |   65 |
|          1 | MiniQuiz |   75 |
+------------+----------+------+
3 rows in set (0.00 sec)

assesType assessments:

INSERT INTO assessments VALUES (1, 5, 75);

. MySQL :

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails

, , (.. ). C ACID.

+2

, , .

SQL .

:

select students.studentid, assessments.assesName AS assesType
from students
  inner join assessments on (students.assesType = assesments.assesType)
+2

. - , .

assesType , , assesTypes, assesType, . assesTypes, assesType assesType. , assesTypes assesTypes.

"" , .

0

Source: https://habr.com/ru/post/1762038/


All Articles