PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (128): В начало « ... 18 19 20 21 [22] 23 24 25 26 ... » В конец

> Найдено сообщений: 1914
3d_killer Отправлено: 26 Марта, 2016 - 11:03:09 • Тема: Долго выполняется запрос что можно предпринять • Форум: SQL и Архитектура БД

Ответов: 40
Просмотров: 453
PHP:
скопировать код в буфер обмена
  1. self::$DBH=new PDO(sprintf("mysql:host=%s;dbname=%s", $host, $db,"charset=utf8"), $user, $pass);
3d_killer Отправлено: 26 Марта, 2016 - 10:56:43 • Тема: Долго выполняется запрос что можно предпринять • Форум: SQL и Архитектура БД

Ответов: 40
Просмотров: 453
PHP:
скопировать код в буфер обмена
  1. $options = array( PDO:: MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
  2. self::$DBH=new PDO(sprintf("mysql:host=%s;dbname=%s", $host, $db), $user, $pass,$options);
  3. self::$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
3d_killer Отправлено: 26 Марта, 2016 - 10:46:19 • Тема: Долго выполняется запрос что можно предпринять • Форум: SQL и Архитектура БД

Ответов: 40
Просмотров: 453
Верю что дельный, но не находил, специально после того как он написал, я искал
(Добавление)
а про архитектуру, с таким ТЗ, не может быть все просто, хотим и добавлять типы объектов (хоть место в канализации) и свойства любые и в любом количестве, и фильтровать по любым свойствам
(Добавление)
LIME хотя может проблема конечно в том что я добавлял скриптом всякую хрень, не связанные данные
(Добавление)
LIME это?
PHP:
скопировать код в буфер обмена
  1. $options = array( PDO:: MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
3d_killer Отправлено: 26 Марта, 2016 - 10:40:38 • Тема: Долго выполняется запрос что можно предпринять • Форум: SQL и Архитектура БД

Ответов: 40
Просмотров: 453
щас чуть нарисую
3d_killer Отправлено: 26 Марта, 2016 - 10:25:23 • Тема: Долго выполняется запрос что можно предпринять • Форум: SQL и Архитектура БД

Ответов: 40
Просмотров: 453
Мелкий поставил
self::$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
как все работало так и работает, ошибок не сыпет
Мелкий пишет:
3d_killer пишет:
self::$DBH->query("SET NAMES 'utf8'");

Некорректно. Указывайте charset в строке подключения.

так написано в документации PDO, то что вы говорите нигде не видел
(Добавление)
отформатированный запрос
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT
  3. `rs-cms_adresat_object`.*,
  4. `param_price`.value_int AS param_price ,
  5. `dir_param_rooms`.value_int AS param_rooms ,
  6. `dir_param_locality`.value AS param_locality ,
  7. `param_param_street`.value AS param_param_street ,
  8. `dir_param_floor`.value_int AS param_floor ,
  9. `dir_param_floors`.value_int AS param_floors ,
  10. `dir_param_status`.value AS param_status ,
  11. `dir_param_info`.value AS param_info ,
  12. `param_param_sole_owner`.value AS param_param_sole_owner ,
  13. `param_tel_sole_owner`.value AS param_tel_sole_owner ,
  14. `param_pl_obsh`.value_int AS param_pl_obsh ,
  15. `param_pl_jilaya`.value_int AS param_pl_jilaya ,
  16. `param_pl_kuhni`.value_int AS param_pl_kuhni ,
  17. `dir_param_ul_new`.value AS param_ul_new ,
  18. `rs-cms_core_users`.name AS user_name,
  19. `rs-cms_core_users`.email AS user_email,
  20. `rs-cms_core_users`.id AS user_id
  21.  
  22. FROM `rs-cms_adresat_object`
  23.  
  24. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS param_price ON
  25.         `param_price`.object_id = `rs-cms_adresat_object`.id AND `param_price`.id_directory=5
  26. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS `param_rooms` ON
  27.         `param_rooms`.object_id = `rs-cms_adresat_object`.id AND `param_rooms`.id_directory=6
  28. LEFT JOIN `rs-cms_adresat_directory_values` AS `dir_param_rooms` ON
  29.         `dir_param_rooms`.id = `param_rooms`.link AND `dir_param_rooms`.id_directory=6
  30. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS `param_locality` ON
  31.         `param_locality`.object_id = `rs-cms_adresat_object`.id AND `param_locality`.id_directory=2
  32. LEFT JOIN `rs-cms_adresat_directory_values` AS `dir_param_locality` ON
  33.         `dir_param_locality`.id = `param_locality`.link AND `dir_param_locality`.id_directory=2
  34. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS param_param_street ON
  35.         `param_param_street`.object_id = `rs-cms_adresat_object`.id AND `param_param_street`.id_directory=16
  36. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS `param_floor` ON
  37.         `param_floor`.object_id = `rs-cms_adresat_object`.id AND `param_floor`.id_directory=17
  38. LEFT JOIN `rs-cms_adresat_directory_values` AS `dir_param_floor` ON
  39.         `dir_param_floor`.id = `param_floor`.link AND `dir_param_floor`.id_directory=17
  40. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS `param_floors` ON
  41.         `param_floors`.object_id = `rs-cms_adresat_object`.id AND `param_floors`.id_directory=18
  42. LEFT JOIN `rs-cms_adresat_directory_values` AS `dir_param_floors` ON
  43.         `dir_param_floors`.id = `param_floors`.link AND `dir_param_floors`.id_directory=18
  44. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS `param_status` ON
  45.         `param_status`.object_id = `rs-cms_adresat_object`.id AND `param_status`.id_directory=11
  46. LEFT JOIN `rs-cms_adresat_directory_values` AS `dir_param_status` ON
  47.         `dir_param_status`.id = `param_status`.link AND `dir_param_status`.id_directory=11
  48. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS `param_info` ON
  49.         `param_info`.object_id = `rs-cms_adresat_object`.id AND `param_info`.id_directory=4
  50. LEFT JOIN `rs-cms_adresat_directory_values` AS `dir_param_info` ON
  51.         `dir_param_info`.id = `param_info`.link AND `dir_param_info`.id_directory=4
  52. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS param_param_sole_owner ON
  53.         `param_param_sole_owner`.object_id = `rs-cms_adresat_object`.id AND `param_param_sole_owner`.id_directory=19
  54. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS param_tel_sole_owner ON
  55.         `param_tel_sole_owner`.object_id = `rs-cms_adresat_object`.id AND `param_tel_sole_owner`.id_directory=15
  56. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS param_pl_obsh ON
  57.         `param_pl_obsh`.object_id = `rs-cms_adresat_object`.id AND `param_pl_obsh`.id_directory=8
  58. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS param_pl_jilaya ON
  59.         `param_pl_jilaya`.object_id = `rs-cms_adresat_object`.id AND `param_pl_jilaya`.id_directory=9
  60. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS param_pl_kuhni ON
  61.         `param_pl_kuhni`.object_id = `rs-cms_adresat_object`.id AND `param_pl_kuhni`.id_directory=10
  62. LEFT JOIN `rs-cms_adresat_directory_values_to_object` AS `param_ul_new` ON
  63.         `param_ul_new`.object_id = `rs-cms_adresat_object`.id AND `param_ul_new`.id_directory=21
  64. LEFT JOIN `rs-cms_adresat_directory_values` AS `dir_param_ul_new` ON
  65.         `dir_param_ul_new`.id = `param_ul_new`.link AND `dir_param_ul_new`.id_directory=21
  66. LEFT JOIN `rs-cms_adresat_object_owner` ON
  67.         `rs-cms_adresat_object_owner`.object_id = `rs-cms_adresat_object`.id
  68. LEFT JOIN `rs-cms_core_users` ON
  69.         `rs-cms_core_users`.id=`rs-cms_adresat_object_owner`.user_id
  70.  
  71.  
  72. WHERE `rs-cms_adresat_object`.type_id=:type AND
  73. `param_price`.value_int >= 1 AND
  74. `param_price`.value_int <= 54 AND
  75. `dir_param_rooms`.id =19 AND
  76. `dir_param_locality`.id ='3' AND
  77. `param_param_street`.value LIKE '%test%' AND
  78. `dir_param_floor`.id =25 AND
  79. `dir_param_floors`.id =50 AND
  80. `param_pl_obsh`.value_int >= 2 AND
  81. `param_pl_obsh`.value_int <= 6 AND
  82. `param_pl_jilaya`.value_int >= 1 AND
  83. `param_pl_jilaya`.value_int <= 6 AND
  84. `param_pl_kuhni`.value_int >= 4 AND
  85. `param_pl_kuhni`.value_int <= 54 AND
  86. `dir_param_ul_new`.id ='2427'
  87.  
  88. GROUP BY `rs-cms_adresat_object`.id
  89.  
  90. ORDER BY `rs-cms_adresat_object`.date_add DESC
  91.  
  92. LIMIT 0,50
  93.  
3d_killer Отправлено: 26 Марта, 2016 - 10:06:54 • Тема: Mysql PostgreSql PDO бекап • Форум: SQL и Архитектура БД

Ответов: 46
Просмотров: 564
LIME понял что все сложно, буду думать, благодарю за советы
3d_killer Отправлено: 26 Марта, 2016 - 10:00:40 • Тема: Mysql PostgreSql PDO бекап • Форум: SQL и Архитектура БД

Ответов: 46
Просмотров: 564
в той таблице уникальных индификаторов нет, вот мысли по редис тоже появлялись
3d_killer Отправлено: 26 Марта, 2016 - 09:52:37 • Тема: Mysql PostgreSql PDO бекап • Форум: SQL и Архитектура БД

Ответов: 46
Просмотров: 564
LIME вот я и думал про нерелятиционную базу, просто как бы не работал раньше с ними и пока не могу сказать про скорость выборки, а так же при применении нерелятиционной бд возможно использование ее частично, то есть данные что касаются обектов хранятся в редис все остальное в mysql
3d_killer Отправлено: 26 Марта, 2016 - 09:49:27 • Тема: Mysql PostgreSql PDO бекап • Форум: SQL и Архитектура БД

Ответов: 46
Просмотров: 564
Viper вот я и привел пример 1С, у нас файловая база или MSSQL неважно, зашли в программу выгрузили бд, это один файл потом создали на серваке подключение к постги, зашли в программу и развернули бекап с данными на нем, там не 2 внутри бекапа
3d_killer Отправлено: 26 Марта, 2016 - 09:36:31 • Тема: Mysql PostgreSql PDO бекап • Форум: SQL и Архитектура БД

Ответов: 46
Просмотров: 564
LIME, в том то и дело что о различиях я в курсе, последний проект я делал на MySQL, пока данных не много в нем, но ожидается прилично. Это база данных недвижимости, у каждого типа недвижимости куча свойств, они разные, соответственно сделаны эти свойства не полями. Соответственно, при запросах на выборку выходит очень много Left Join, на небольшом объеме данных все хорошо, но пробовал рендомно накидать объектов под 200 тыс, это превращается в ад, запросы по 15-30 секунд. Перевод в myisam базы немного повысил производительность, но недостаточно.
Недавно я задавал вопрос на форуме, по этому поводу, в итоге сделал таблицу memory дублирующую таблицу куда нацелены LEFT JOIN и триггером ее обновлял при добавлении или апдейте основной, то есть обновление и чтение конкретного объекта идет из основной, а выборка из Memory, поэтому начал смотреть в сторону postgresql, через Pgadmin собрал базу набил данными и пробовал запросы, работает намного быстрее, но вот с бекапом конечно вопрос интересный.
В принципе можно парсить и заменять ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 и т.д. на слова Pestresа, но если бекап огромный, как обработать столько данных, думаю, что как то таким образом и сделано например в 1С, так как постгри 1С поддерживать стала не так давно, кстати и не с любым работает для этого выпущен патч, то есть название примерно такое PostgreSQL 9.0.3-3.1C
3d_killer Отправлено: 26 Марта, 2016 - 01:41:06 • Тема: Mysql PostgreSql PDO бекап • Форум: SQL и Архитектура БД

Ответов: 46
Просмотров: 564
Появилось немного времени решил попрактиковаться с БД Postgres
Работаю с PDO (с подключением проблем не возникло)
Бекап с Mysql развернуть я так понял не получится, синтаксис разный, как быть?
даже кавычки отличаются
если у mysql INSERT INTO `rs-cms_adresat_directory`
у постгри INSERT INTO "rs-cms_adresat_directory"
на что друг у друга конфликт, как делать универсальный бекап, как работают с этим другие программы например 1C, по созданию базы тоже синтаксис сильно разнится.
Кто сталкивался с подобным вопросом, как можно его решить?
3d_killer Отправлено: 26 Марта, 2016 - 01:30:28 • Тема: Вопрос по коду PHP • Форум: Напишите за меня, пожалуйста

Ответов: 68
Просмотров: 967
с этим шаблонизатором работать и не будет
3d_killer Отправлено: 25 Марта, 2016 - 20:18:06 • Тема: Подключение файлов из папки • Форум: Вопросы новичков

Ответов: 6
Просмотров: 274
это путь на серваке /home/cy/domains/blog.ru/public_ html/ к которому может получить доступ только тот кто обладает правами админа (то есть по такому пути можно делать include), а скрипт, css это файл касающийся пользовательского отражения, то есть пользователь должен иметь к нему доступ так же как и к скрипту js например. Следовательно путь надо прописывать от корня папки, чтобы в него попасть ставится / это корневая директория где лежит index, от него дальше и пишешь путь к скрипту
3d_killer Отправлено: 25 Марта, 2016 - 19:43:20 • Тема: Подключение файлов из папки • Форум: Вопросы новичков

Ответов: 6
Просмотров: 274
а это тут нафига? /home/cy/domains/blog.ru/public_ html/
(Добавление)
таким путем подключай /wp-content/themes/theme/custom/ Alternative_title/includes/style s.css
3d_killer Отправлено: 25 Марта, 2016 - 19:21:46 • Тема: Передать переменную • Форум: Вопросы новичков

Ответов: 19
Просмотров: 591
CODE (html):
скопировать код в буфер обмена
  1. <a href="#" title="Быстое превью" class="button quick-view yith-wcqv-button" data-id="Переменная">Быстое превью</a>


CODE (javascript):
скопировать код в буфер обмена
  1. $.post('/product/quick_view/'+$(this).data('id'),

Страниц (128): В начало « ... 18 19 20 21 [22] 23 24 25 26 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB