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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Оптимизация MySQL запросов!
 
 автор: xpom   (23.03.2010 в 17:51)   письмо автору
 
 

Нужно оптимизировать MySQL запросов хостинг постоянно блокирует базу данных из-за большого трафика стоит ограничение 1ГБ в 10 минут...
Подскажите нужно упростить запрос к базе? т.е. есть столбе в котором перечисляется через запятую цифры 25,125,45,15 а можно ли по ним отсортировать выборку, т.е. чтобы в данном поле находило совпадающее число через зяпятую например если есть в данном столбце 25 то выводить эти строки...просто есть же и 125 число и здесь совпадет если искать просто числом или так не возможно будет выбрать?

  Ответить  
 
 автор: cheops   (24.03.2010 в 01:45)   письмо автору
 
   для: xpom   (23.03.2010 в 17:51)
 

Нужно больше подробностей что за база, кто к ней обращается

>т.е. есть столбе в котором перечисляется через запятую цифры 25,125,45,15
Это в таблице? Лучше провести нормализацию и ввести ещё одну таблицу для этого столбца.

  Ответить  
 
 автор: xpom   (24.03.2010 в 11:39)   письмо автору
 
   для: cheops   (24.03.2010 в 01:45)
 

Да в таблице есть столбец cifri2 в котором перечисляется через запятую цифры 25,125,45,15 эти цифры это первичные ключи другой таблицы, занесенные с помощью функции implode(",", $array) а нужно выбрать данные с таблицы, где встречается значение например 5, в столбце где эти ключи находятся через запятую 25,125,45,15, например если есть в данном столбце 5 только 5 не 25 или 35..то выводить эти строки. Запер я ключи таблицы в другую таблицу implode(",", $array) теперь не знаю как искать средствами MySQL, я вытягивал все данные их много, а потом уже в php в массиве искал совпадение но сильно большой трафик идет..нужно в самой MySQL искать совпадение(( Помогите

вот такой вот запрос: SELECT title FROM tabl1 WHERE cifri1=4 AND cifri2="вот здесь нужно например число 5" ORDER BY Pol DESC

  Ответить  
 
 автор: Trianon   (24.03.2010 в 11:49)   письмо автору
 
   для: xpom   (24.03.2010 в 11:39)
 

Заперли?
Теперь отпирайте.

О том, что списки ключей нельзя хранить в ячейках таблиц, и что нужно создавать таблицы связи, я пишу здесь со средней периодичностью 2-4 раза в месяц.

  Ответить  
 
 автор: xpom   (24.03.2010 в 12:04)   письмо автору
 
   для: Trianon   (24.03.2010 в 11:49)
 

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

  Ответить  
 
 автор: xpom   (24.03.2010 в 12:12)   письмо автору
 
   для: xpom   (24.03.2010 в 12:04)
 

а как эти таблицы связей выглядят? Можно примерчик

  Ответить  
 
 автор: oliss   (25.03.2010 в 10:01)   письмо автору
 
   для: xpom   (24.03.2010 в 12:12)
 

многие-ко-многим 

вы же давно на форуме ,эта тема салом покрылась (простите, что так грубо)

  Ответить  
 
 автор: triAnon   (25.03.2010 в 09:52)   письмо автору
 
   для: xpom   (24.03.2010 в 12:04)
 

Еще раз.

>а как связи создавать, если нужно несколько ключей к одной строке подключить???Не одно там число например, а несколько чисел ключей подсоединить к одной строке

Я пишу значительно чаще, чем Вы сталкиваетесь, и именно об этом.
Что такое связь многие-ко-многим, и как она реализуется с помощью дополнительной таблицы.

> и сделать в одной ячейке?
И что в одной ячейке такое делать неправильно.

  Ответить  
 
 автор: г о с т ь   (25.03.2010 в 02:23)   письмо автору
 
   для: xpom   (24.03.2010 в 11:39)
 


 SELECT title FROM tabl1 WHERE cifri1=4 AND 5 IN (`cifri2`)

  Ответить  
Rambler's Top100
вверх

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