Что быстрее и менее ресурсоемко? Использование большего количества строк в MySQL или использование substr из Stack Overflow

Что менее ресурсоемко и быстрее?

Сценарий 1:

Хранение в MySQL в 10 столбцах значений INT

Сценарий 2:
Хранить значения Int только в одном столбце и использовать substr () из PHP для получения отдельного значения INT для дальнейшей обработки?

-2

Решение

Легко ответить:

Использовать INT колонны …

1 INT столбец стоит 4 байта и может хранить значения от -2147483648 до 2147483647 (примечание: 10 цифр)

4 байта в VARCHAR столбец (при условии, что это то, что вы имеете в виду) хранит только 4 цифры (или меньше в зависимости от используемой кодировки)

Если вы не хотите использовать 4 байта для INT, вы можете использовать другой тип. Увидеть http://dev.mysql.com/doc/refman/5.0/en/integer-types.html

Что касается скорости … Разница будет незначительной, и это будет только преждевременная оптимизация. (также я думаю, что substr метод, который вы предлагаете, всегда будет медленнее, стоимость substr O (N), тогда как поиск таблицы с правильной индексацией O (log N), независимо от количества столбцов)

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

3

Другие решения

Не прямой ответ на ваш вопрос, но лучший способ проверить скорость выполнения:

<?php
$time_start = microtime(true);

// YOUR CODE TO BENCHMARK HERE

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "Took $time seconds\n";
0

По вопросам рекламы [email protected]