Что менее ресурсоемко и быстрее?
Сценарий 1:
Хранение в MySQL в 10 столбцах значений INT
Сценарий 2:
Хранить значения Int только в одном столбце и использовать substr () из PHP для получения отдельного значения INT для дальнейшей обработки?
Легко ответить:
Использовать 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
столбцы, вы никогда не знаете, хотите ли вы сортировать / фильтровать / агрегировать каждый отдельный столбец.
Не прямой ответ на ваш вопрос, но лучший способ проверить скорость выполнения:
<?php
$time_start = microtime(true);
// YOUR CODE TO BENCHMARK HERE
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "Took $time seconds\n";