Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Поиск в базе

Сообщения:  [1-10]    [11-20]   [21-30]  [31-34] 

 
 автор: cheops   (11.07.2011 в 22:15)   письмо автору
 
   для: Dazzl   (11.07.2011 в 22:04)
 

Да есть, первый запрос будет приводить id к строке, а потом сравнивать однобайтовые строки, второй запрос просто без затей будет сравнивать числа. Лучше использовать второй запрос.

  Ответить  
 
 автор: Valick   (11.07.2011 в 22:07)   письмо автору
 
   для: Dazzl   (11.07.2011 в 21:50)
 

кстати Вы зря восприняли в штыки мой совет о приобретении хорошей книги
форум не сможет (по крайней мере это достаточно сложно) научить Вас задавать "правильные" вопросы, а вот книга сможет, и сделает это достаточно быстро.
более того мне лично с того купите ли Вы книгу или нет никакой выгоды и не будет
А вот авторы этого форума написали много хороших книг (большинство из которых у меня кстати стоят на полке) и поверьте любая из них стоит своих денег. Лично я , да и добрая половина форумцев, неоднократно благодарили авторов именно за книги, ну и естественно за форум, который является логическим продолжением книг.

  Ответить  
 
 автор: Dazzl   (11.07.2011 в 22:05)   письмо автору
 
   для: Dazzl   (11.07.2011 в 22:04)
 

q и tbl это одна база, забыл переименовать

  Ответить  
 
 автор: Dazzl   (11.07.2011 в 22:04)   письмо автору
 
   для: cheops   (11.07.2011 в 21:47)
 

ещё вопрос

есть ли разница между
SELECT * FROM q WHERE `id` LIKE '4'"
такой выборкой данных (посредством id)

и такой

SELECT * FROM tbl WHERE id=9

Повторюсь мне нужно чтоб моя база работала как можно производительнее, так что указывайте на любую мелоч

  Ответить  
 
 автор: Dazzl   (11.07.2011 в 21:50)   письмо автору
 
   для: cheops   (11.07.2011 в 21:47)
 

Спасибо ещё раз, я многое узнал с тех пор как наткнулся на ваш форум.

  Ответить  
 
 автор: cheops   (11.07.2011 в 21:50)   письмо автору
 
   для: Dazzl   (11.07.2011 в 21:45)
 

Понимаете какая штука, когда речь заходит о больших таблицах - там все медленно работает, поэтому вводят индексирование, т.е. грубо говоря копию столбца, которая поддерживается в отсортированном состоянии, и которая ссылается на адрес в таблице. Такие индексы могут существенно увеличивать скорость. Можно индексировать и строки и числа, но строки всегда будут обрабатываться медленнее, так как они занимают больший размер - строка - это массив чисел. Что проще обработать 1 число или скажем 20?

  Ответить  
 
 автор: cheops   (11.07.2011 в 21:47)   письмо автору
 
   для: Dazzl   (11.07.2011 в 21:31)
 

% - это обозначения любого символа, т.е. ищется вхождение слова "Стас", до и после которого может быть произвольное количество слов.

>и насколько быстрее обробатываеться данные если ссылаться как вы сказали на id?
Обычное целое число занимает 2 байта, т.е. при сравнении цифр компьютеру нужно сравнить 2 байта с другими двумя байтами, делается это за один такт процессора. При сравнении строк нужно сравнить то количество байт, сколько символов в строке (это если кодировка однобайтовая) + плюс такты на обслуживание разбиения строки на сегменты, причем сравнивать сразу 4 байта (32 бита) не получится, нужно выделять каждый байт (8 бит), упаковывать в 32-битный фрагмент и скармливать процессору. Когда же вы используете %, мало того, что строки нужно сравнить, так их нужно сравнить начиная с каждого символа в строке, где осуществляется поиск... Если кратко, то цифры обрабатываются существенно быстрее, в разы, иногда даже на порядки быстрее.

  Ответить  
 
 автор: Dazzl   (11.07.2011 в 21:45)   письмо автору
 
   для: Valick   (11.07.2011 в 21:40)
 

Существенно ли повыситься производительность базы если ссылаться на id в базе с 10.000т. (а то и больше) строками?

  Ответить  
 
 автор: Valick   (11.07.2011 в 21:40)   письмо автору
 
   для: Dazzl   (11.07.2011 в 21:31)
 

тип поля id - integer числа всегда обрабатываются быстрее
сама по себе выборка по id довольно редкое явление (обычно это какой либо параметр передаваемый вместе со сылкой)
этой выборке чаще всего предшествует какая либо другая выборка результатом которой является один или несколько id (кстати формирование ссылки о которой речь шла чуть выше один из вариантов)

  Ответить  
 
 автор: Dazzl   (11.07.2011 в 21:31)   письмо автору
 
   для: Dazzl   (11.07.2011 в 17:17)
 

Спасибо всем за терпеливую помощь я наконец понял как выводить данные строки
Тока ещё несколько вопросов:
что делаю знаки процентов %Стас%?

$g = mysql_query("SELECT * FROM q WHERE `name` LIKE '%Стас%'");

и насколько быстрее обробатываеться данные если ссылаться как вы сказали на id?

лучше, конечно, если есть возможность по id - он уникальный и быстрее обрабатывается, чем строка
SELECT * FROM tbl WHERE id=9

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-34] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования