2013-11-30 6 views
2

У меня есть аа таблицы вопросов в моей базе данных здесь столбцы и данные типы таблицы вопросовРасчет времени выполнения запроса

Field   Datatype 
QID    BIGINT 
UserID   INT(11) 
Question  VARCHAR(100) 
Description  Text 
Date   DateTime 
Status   TINYINT 

эта таблица, как ожидается, около 2 миллионов записей моего вопроса, как я вычислить запрос время выполнения, если я ищу запись на основе QID, UserID или Question.

+0

Вы не можете рассчитывать. –

+0

вы можете рассчитать его, но это будет «оценка», но вам нужно предоставить дополнительную информацию, а затем это .. как создать инструкцию таблицы и запросы, которые вы выполняете. –

ответ

1

AFAIK вы можете только узнать количество обращений к блокам, но вычисления времени выполнения запроса будет невозможно можно только оценить, потому что вы никогда не знаете, сколько процессов будет выполнение на ваше фактическое оборудование, и поэтому у вас нет возможности рассчитать, как долго процессор будет обслуживать ваш процесс.

Чтобы узнать количество обращений к блокам следовать first answer of this question best explanation i guess

+2

+1 btw true, и это также зависит от типа процессора .. у некоторых процессоров есть лучшая оптимизация векторных вычислений .. iam довольно уверен, что MySQL не оптимизирует выполнение на основе аппаратного или аппаратного обеспечения процессора (он даже не имеет аппаратного зависящего от оптимизатора запросов) –

+0

@ RaymondNijland точно –

+1

@pronox благодарит парня, которого он прекрасно объяснил в вашей ссылке – bug

4

Вы можете использовать General Query Log, но у него есть определенные недостатки, поэтому подумайте, прежде чем запускать его в какой-либо производственной среде.

Вы можете использовать его как:

SET profiling = 1; 

, а затем выполнить запрос, как

SHOW PROFILES; 

EDIT: -

Я не знаю, если это лучший подход, чтобы пойти но здесь это происходит, так как это может зависеть от процессора и количества процессов, запущенных в вашей системе:

declare @start timestamp 
declare @stop timestamp 

set @start = select NOW(); 
//Your query 
set @stop = select NOW(); 

Время выполнения = @stop - @start

+0

смотрит, как он хочет рассчитать время выполнения запроса перед выполнением запроса. –

+0

@RaymondNijland: - Тогда я пошел бы с юргеном, так как я тоже думаю, что это невозможно! –

+0

@RaymondNijland да, я хочу вычислить его математически. – bug

Смежные вопросы