[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: оптимизация запросов в БД
Страницы: 1, 2
savelikan
PHP и MYSQL знаю на уровне: средний
Задача: создать сайт онлайн тестирования, типа подготовка к внешнему независимому тестированию(Украина), екзамен КРОК(Украина)и ЕГЭ(Россия)

Я написал сайт, но проблема в том, что он сильно нагружает сервет.
Вот база данных вопросов:
CREATE TABLE IF NOT EXISTS `testing_questions` (
`testing_questions-id` int(11) NOT NULL AUTO_INCREMENT,
`testing_questions-toppic` int(11) NOT NULL,
`testing_questions-type` int(11) NOT NULL,
`testing_questions-mark` int(11) NOT NULL,
`testing_questions-showtext` int(11) NOT NULL,
`testing_questions-text` text NOT NULL,
`testing_questions-img` varchar(200) NOT NULL,
`testing_questions-form` int(11) NOT NULL,
`testing_questions-img-float` int(1) NOT NULL,
`testing_questions-answer-float` int(1) NOT NULL,
`testing_questions-answer-clear` int(1) NOT NULL,
PRIMARY KEY (`testing_questions-id`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=284870 ;

ответы, где testing_answers-question = testing_questions-id
CREATE TABLE IF NOT EXISTS `testing_answers` (
`testing_answers-id` int(11) NOT NULL AUTO_INCREMENT,
`testing_answers-question` int(11) NOT NULL,
`testing_answers-answer` text NOT NULL,
`testing_answers-true` text NOT NULL,
`testing_answers-inf` int(11) NOT NULL,
PRIMARY KEY (`testing_answers-id`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1418556 ;


Я так понял, чтоб не делать отдельный цыкл на ответы, можно так:
SELECT *
FROM `testing_questions`
RIGHT JOIN `testing_answers` ON (`testing_answers`.`testing_answers-question` = `testing_questions`.`testing_questions-id`)
WHERE `testing_questions-toppic` = 1
ORDER BY `testing_questions-id`

Тогда как из результатов вычислить, где уже новый вопрос, а где ответы до предыдущего вопроса?

_____________
Одесса - мой город!)))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.