我需要你的帮助,了解如何在我的表中包含 INDEXES
,我已经在几个教程中阅读过它,但仍然无法在我的数据库中实现它。为了提高我的数据库的效率:
我已经在 wampserver 上安装了 php_apc.dll
并且它更快了一点,我也试图避免使用 SELECT *
在我的查询中需要的地方。但是如何实现INDEX
是我的问题。如果您能指出 INDEX
的必要位置,我将非常高兴。
这是我的数据库架构
Database: RESULTS
-------------------
Table: STUDENTS
- studentID (int)
- first_name (varchar)
- last_name (varchar)
- other_name (varchar)
Table: COURSES
- courseID (int)
- course_code (varchar)
- course_title (varchar)
- course_unit (int)
Table: SEMESTER
- semesterID
- semester_name
Table: MAINTABLE
- scoresID (int)
- courseID (int)
- studentID (int)
- semester_name (varchar)
- session (varchar)
- score (int)
- grade (varchar)
- remarks (varchar)
我的大部分查询都围绕着
INSERT
INTO MAINTABLE
, STUDENTS
..... 然后 SELECT
FROM MAINTABLE
, STUDENTS
和 COURSES
感谢您的耐心和时间。我非常感激。 谢谢。
**查询示例"
$query2 = mysql_query("SELECT first_name, last_name
FROM students
WHERE matric_no = '".$matric_no."' ");
($row2 = mysql_fetch_array($query2));
$query3 = mysql_query("SELECT SUM(c. course_unit) AS 'TOTAL'
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'
AND m.level = '".$level."'") or
die (mysql_error());
$query4 = mysql_query("SELECT c. course_unit, m.score
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'
AND m.level = '".$level."'")
or die (mysql_error());
$query5 = mysql_query("SELECT c. course_unit, m.score
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'") or die (mysql_error());
$query6 = mysql_query("SELECT SUM(c. course_unit) AS 'TOTAL'
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'") or die (mysql_error());
$query7 = mysql_query("SELECT m. course_code AS 'Course Code', c.course_title AS 'Course Title'
, c.course_unit AS 'Unit',
m.score AS 'Score', m.grade AS 'Grade'
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'
AND m.level = '".$level."'")
or die (mysql_error());
$number_cols = mysql_num_fields ($query7);
$query8 = mysql_query("SELECT m. score, m.course_code
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'
AND m.score >= 0 AND m.score < 40 ") or die (mysql_error());
$query9 = mysql_query("SELECT m.grade, m.course_code
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'
AND m.grade = 'AR'")
or die (mysql_error());
请原谅我的排版。我用手机打字。感谢您的时间。
最佳答案
这有点过于笼统,无法在这里很好地回答,但我对您的指导是专注于您的 WHERE 子句 - 如果您在 WHERE 中使用了很多东西,然后在其上放置一个索引,这将使这些查询更快。此外,如果您进行任何连接,请将索引放在您在 ON 子句中使用的内容上。这太过于笼统了,我希望我会因为这样说而遭到抨击,但一般性问题会产生一般性答案。
更具体的是您显示表结构并实际显示一两个查询。但随后它就非常接近我们为您完成您的工作。
希望这对您有所帮助。
关于php - 关于如何索引我的数据库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9948273/