|
|
|
|
|
для: Dazzl
(11.07.2011 в 22:04)
| | Да есть, первый запрос будет приводить id к строке, а потом сравнивать однобайтовые строки, второй запрос просто без затей будет сравнивать числа. Лучше использовать второй запрос. | |
|
|
|
|
|
|
|
для: Dazzl
(11.07.2011 в 21:50)
| | кстати Вы зря восприняли в штыки мой совет о приобретении хорошей книги
форум не сможет (по крайней мере это достаточно сложно) научить Вас задавать "правильные" вопросы, а вот книга сможет, и сделает это достаточно быстро.
более того мне лично с того купите ли Вы книгу или нет никакой выгоды и не будет
А вот авторы этого форума написали много хороших книг (большинство из которых у меня кстати стоят на полке) и поверьте любая из них стоит своих денег. Лично я , да и добрая половина форумцев, неоднократно благодарили авторов именно за книги, ну и естественно за форум, который является логическим продолжением книг. | |
|
|
|
|
|
|
|
для: Dazzl
(11.07.2011 в 22:04)
| | q и tbl это одна база, забыл переименовать | |
|
|
|
|
|
|
|
для: cheops
(11.07.2011 в 21:47)
| | ещё вопрос
есть ли разница между
SELECT * FROM q WHERE `id` LIKE '4'"
такой выборкой данных (посредством id)
и такой
SELECT * FROM tbl WHERE id=9
Повторюсь мне нужно чтоб моя база работала как можно производительнее, так что указывайте на любую мелоч | |
|
|
|
|
|
|
|
для: cheops
(11.07.2011 в 21:47)
| | Спасибо ещё раз, я многое узнал с тех пор как наткнулся на ваш форум. | |
|
|
|
|
|
|
|
для: Dazzl
(11.07.2011 в 21:45)
| | Понимаете какая штука, когда речь заходит о больших таблицах - там все медленно работает, поэтому вводят индексирование, т.е. грубо говоря копию столбца, которая поддерживается в отсортированном состоянии, и которая ссылается на адрес в таблице. Такие индексы могут существенно увеличивать скорость. Можно индексировать и строки и числа, но строки всегда будут обрабатываться медленнее, так как они занимают больший размер - строка - это массив чисел. Что проще обработать 1 число или скажем 20? | |
|
|
|
|
|
|
|
для: Dazzl
(11.07.2011 в 21:31)
| | % - это обозначения любого символа, т.е. ищется вхождение слова "Стас", до и после которого может быть произвольное количество слов.
>и насколько быстрее обробатываеться данные если ссылаться как вы сказали на id?
Обычное целое число занимает 2 байта, т.е. при сравнении цифр компьютеру нужно сравнить 2 байта с другими двумя байтами, делается это за один такт процессора. При сравнении строк нужно сравнить то количество байт, сколько символов в строке (это если кодировка однобайтовая) + плюс такты на обслуживание разбиения строки на сегменты, причем сравнивать сразу 4 байта (32 бита) не получится, нужно выделять каждый байт (8 бит), упаковывать в 32-битный фрагмент и скармливать процессору. Когда же вы используете %, мало того, что строки нужно сравнить, так их нужно сравнить начиная с каждого символа в строке, где осуществляется поиск... Если кратко, то цифры обрабатываются существенно быстрее, в разы, иногда даже на порядки быстрее. | |
|
|
|
|
|
|
|
для: Valick
(11.07.2011 в 21:40)
| | Существенно ли повыситься производительность базы если ссылаться на id в базе с 10.000т. (а то и больше) строками? | |
|
|
|
|
|
|
|
для: Dazzl
(11.07.2011 в 21:31)
| | тип поля id - integer числа всегда обрабатываются быстрее
сама по себе выборка по id довольно редкое явление (обычно это какой либо параметр передаваемый вместе со сылкой)
этой выборке чаще всего предшествует какая либо другая выборка результатом которой является один или несколько id (кстати формирование ссылки о которой речь шла чуть выше один из вариантов) | |
|
|
|
|
|
|
|
для: Dazzl
(11.07.2011 в 17:17)
| | Спасибо всем за терпеливую помощь я наконец понял как выводить данные строки
Тока ещё несколько вопросов:
что делаю знаки процентов %Стас%?
$g = mysql_query("SELECT * FROM q WHERE `name` LIKE '%Стас%'");
и насколько быстрее обробатываеться данные если ссылаться как вы сказали на id?
лучше, конечно, если есть возможность по id - он уникальный и быстрее обрабатывается, чем строка
SELECT * FROM tbl WHERE id=9 | |
|
|
|
|