Как рассчитать размер по моему запросу MySQL?

0

Я пытаюсь найти размер в MB моего запроса, но я не понимаю, как это сделать. Я хотел бы получить размер моего запроса таким образом:

SELECT size_query FROM my_query

Где "my_query" это может быть: SELECT * FROM MyTable WHERE idFactory = 1

  • 0
    Вы имеете в виду количество записей, возвращаемых запросом?
  • 0
    У вас есть код PHP, который вы используете?
Показать ещё 3 комментария
Теги:
database
mysqli

1 ответ

1
Лучший ответ

Если я правильно понял ваш вопрос, ajreal уже предоставил решение по qaru.site/questions/428593/.... Цитируется:

select sum(row_size) 
from (
  select 
    char_length(column1)+
    char_length(column2)+
    char_length(column3)+
    char_length(column4) ... <-- repeat for all columns
  as row_size 
  from your_table
) as tbl1;

Это даст вам размер вашего запроса в байтах, разделите его на 1024 для килобайт и снова для мегабайт.

Изменить: если вы все равно вернете полный результат на PHP и хотите узнать его размер, вы можете рассчитать его на PHP, используя что-то вроде этого:

<?php

$data = [
    [
        'item' => 'Apple',
        'type' => 'fruit',
        'in_stock' => true
    ],
    [
        'item' => 'Biscuits',
        'type' => 'confectionery',
        'in_stock' => false
    ],
    [
        'item' => 'Milk',
        'type' => 'dairy',
        'in_stock' => true
    ],
];


function get_array_size(&$array)
{
    $size = 0;

    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $size += get_array_size($value);
        } else if (is_string($value)) {
            $size += strlen($value);
        } else if (is_bool($value)) {
            $size += 1;
        } /* else if ( some other type ) {

        } */
    }

    return $size;
}

echo get_array_size($data); // Outputs 43

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

  • 0
    Хорошо, но если у меня есть 70 столбцов? Я должен написать каждый столбец? И .. Если у меня есть немного присоединиться? Вы понимаете, @vimist, что сложнее сделать это ..
  • 0
    Да, ты должен.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню