Комментарии к статье ""
30.12.2000 06:16 Bls mysql_num_rows(mysql_query("SELECT id FROM table WHERE field LIKE '%$v%'")); ну кто же так делает. есть в sql конструкция count: select count(id) as kolichestvo from table where field LIKE '%$v%' Ответ DL: ...А потом придется лишний раз вытаскивать массив и из него брать элемент. , пункт 18. Лишние переменные - лишняя память. |
31.12.2000 03:31 Bls В той конструкции которой пользуешься ты нагружаетя не только память: mysql приходится выполнить выборку всех id удовлетворяющих условию. Потом сохранить их в ожидании пока Вы к ним не обратитесь. (предположим что это 20 целых чисел). В противовес этому при использвании count mysql хранит 1 целое число. Убедил ? :) |
31.12.2000 03:33 Bls получился разнабой (ты, Вы) надеюсь Вы не в обиде :)) Ответ DL: Да нет. Просто imho код более читаем, а внутри mysql производительность та же - либо делается группировка, либо подсчет кол-ва строк. К тому же не надо делать mysql_free_result (а если база большая, это необходимо). Так что, это дело вкуса, и того, кому как удобнее. |
6.1.2001 23:43 Sergey [] Если говорить о поиске, то интересно было бы узнать не о SELECT из БД, а о поиске как таковом. К примеру - если требуется быстро искать на PHP в "куче текстовых файлов", то как это делается (индексация в той же базе и тд) Ответ DL: Мне не совсем понятно определение "поиск как таковой". Чем SELECT не поиск? :) А для быстрого поиска в файлах есть хорошо отработанные утилиты, как . |
12.1.2001 13:22 Axel [] А почему символы с x7F по xFF стали "ненормальными" ? или неправильно понял смысл функции $search = preg_replace("/[^(w)|(x7F-xFF)|(s)]/", " ", $search); ? Best regards. Ответ DL: Там есть символ '^', инвертирующий строку, то есть все кроме этих символов будет резаться. |
3.2.2001 02:18 falcon [] Кое что в "обработке строки" все таки не предусмотренно... А именно выход, если были введены одни пробелы. После trim переменная станет равной нулю и mySQL в запросе это не понравится. Ответ DL: Посмотрите в - там это предусмотрено. |
1.3.2001 18:21 Смоляное Чучелко [] К вопросу о count(id): ежели так уж хочется поэкономить память, можно ведь написать mysql_result($result,0,1) Ответ DL: Кстати, экспериментальным путем установлено, что $r = mysql_query("select id from ... where ..."); $num_rows = mysql_num_rows($r); при большом количестве строк в результате выборки медленнее, чем $r= mysql_query("select count(id) as num_rows from ... where ..."); $num_rows = mysql_fetch_row($r); $num_rows = $num_rows[0]; (можно проверить, выполнив запросы через терминал). |