PHP.SU

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

Страниц (24): « 1 2 [3] 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 352
broshurkaplus Отправлено: 22 Сентября, 2015 - 21:24:00 • Тема: MAX_FILE_SIZE не работает. • Форум: Вопросы новичков

Ответов: 4
Просмотров: 422
посмотрите на стороне сервера приходит ли значение из инпута MAX_FILE_SIZE
нужно изначально на сервере забить это и проверять
например
PHP:
скопировать код в буфер обмена
  1. $up_file_size_kb = filesize($tmpfilename) / 1024;
  2. if ($up_file_size_kb > 1048576)
  3.         {
  4.             $prichina = "Размер файла должен быть В ПРЕДЕЛАХ  1Мб.";
  5.             return false;
  6.         }

предполагаю, что тк изначально нет инпутов для файлов то яваскрипт собирающий с нее данные, возможно не видит вновь добавленных инпутов, те не передает значение из вновь добавленного на страницу инпута MAX_FILE_SIZE
если есть яваскрипт валидатор на форме, или пропишите пару строк для этого, чтоы вывести значения из него на экран.
возможно надо использовать для вновь созданных дом элементов
$(document).on('click'...
собрать данные и зформы
);
broshurkaplus Отправлено: 22 Сентября, 2015 - 11:40:07 • Тема: 3 вопроса по бд для 5к проекта • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 146
пример
вот мы на центральной странице: отображает все объявления
имеем сумму объявлений рис1
по регионам
по типу
по разделам

перешли на страницу покупка рис2 и видим сумму объявлений
только о покупке
по регионам
по типу
по разделам

перейдем в раздел - получим сумму только о покупке регионам, типу и разделам
отметим частные - получим сумму только частных о покупке регионам, типу и подразделам
и тд

соответственно если выбрали регион - то тоже по городам региона
нужно всегда получать сумму объявлений по регионам типу категориям с учетом дополнит. параметров
както так ...

как организовать подсчет всех сумм в таком разрезе?
broshurkaplus Отправлено: 22 Сентября, 2015 - 11:14:55 • Тема: 3 вопроса по бд для 5к проекта • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 146
да я уже перечитал мануал...
10 раз переделывал уже - никак не приду к требуемому результату, кроме как через count, щас скрины прилеплю чтоб видно было, что надо
broshurkaplus Отправлено: 21 Сентября, 2015 - 23:26:16 • Тема: Проверка на наличие лишних символов в коце строки • Форум: Регулярные выражения

Ответов: 7
Просмотров: 913
прочитайте по 10 раз про каждую.
1 отдает существует ли вхождение - если да то ок
2 возвращает начиная с позиции первого входжения..., а тк ищем word2 и если вернет word2 (word2==word2) - то ясно что слово и есть последнее - после него нет символов, если !== то не ок.
если слово не 100500символов и знаете что word2 именно в конце, а не 5 раз посередине.
или обрежьде на strlrn(word2) символов с конца и сравните
както так.
broshurkaplus Отправлено: 21 Сентября, 2015 - 23:17:55 • Тема: 3 вопроса по бд для 5к проекта • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 146
спасибо, строку много дольше проверять.
в итоге переделал ближе к вашему совету и вообще удалил ид автоинкремент, чтоб on duplicate иды не жрал на всякий случй
для диска выгода получилаь не очевидна - 6 полей инт *4 байта =24, а в стлучае варчар максимум 12-100-1000-1000-6-25000 +1 =25 но 1-1-1-1-1-1 +1=12 даже чуть экономичней.
в where однако теперь 5 раз AND? чтоб получить счетчик для региона (ключи по столбцам 0|0|0|0|1ид_региона|0)
в итоге так сделал - ввезде инт + составной индекс уникальный
раздел|категория|рубрика|типто_вара|регион|город|сч_всего|сч_частных|сч_бизнсе|сч_бу|сч_новы|сч_покупка|сч_продаж|сч_обмен|сч_бесплптно
однако триггер получился не кислый и с условиями - чтобы реально задействовать все варианты - дергает 15 строк

хм... это допустимо / на сколько может быть плохо или критично 15 записей?
может и кеш пока отрезать, ведь выбор счетчика по полю с where должен очень быстро + ещё пару индексов сделать составных под запросы

чтото не очень нравится правка 15 строк + чтение, чтение...
broshurkaplus Отправлено: 21 Сентября, 2015 - 22:43:50 • Тема: Проверка на наличие лишних символов в коце строки • Форум: Регулярные выражения

Ответов: 7
Просмотров: 913
для получения вхождения (и/или их количества) курите функции работы со строками, это быстрее чем регулярка

strpos для получения вхождения word1 - вы ж сами пишете не false - ок
strstr - для word2 если вернет word2 то ок
broshurkaplus Отправлено: 21 Сентября, 2015 - 22:37:18 • Тема: проблема с copy() и GetImageSize() • Форум: Вопросы новичков

Ответов: 6
Просмотров: 322
они так стартую потому что пути кривые, а именно ищет в той папке исполняемого скрипта куда подключаете. проставьте относительный путь - от места где скрипт.
я имел ввиду не буквально "абсолютные" с http://www..., а от корня.

для а ю так <link rel="stylesheet" href="/css/styles.css"> поставьте, оно же в шаблоне/index/mvc-viev те один раз подключается как я понимаю
broshurkaplus Отправлено: 21 Сентября, 2015 - 11:40:54 • Тема: 3 вопроса по бд для 5к проекта • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 146
мыж пмшем
CODE (SQL):
скопировать код в буфер обмена
  1. ON region_by.`region_id`=sum_by.`sum_id`

а не like %1%
он сравнить не может изза типа чтоли
надо, чтобы отдавало строки где region_id==sum_id, те 1=1 отдавало, а 1=1-1 или 1=1-25-35 нет
как написать чтоб так?

решил что символьный проще, тк при чтении сразу вижу что отдавать, а если по колонке на регион и город и инт то нужно с сравнивать по двум столбцам и в where пользовать and несколько раз
полагаю что так быстрее
хотя можно б было и несколько + индекс множественный, но ведь where and and and как то не нравиться
моежек какое другой решение видите?
broshurkaplus Отправлено: 21 Сентября, 2015 - 10:06:13 • Тема: проблема с copy() и GetImageSize() • Форум: Вопросы новичков

Ответов: 6
Просмотров: 322
где то пути неверно определяет относительно папок
images
/images
../images

попробуйте протестить с абсолютными путями и поймёте где ошибки
broshurkaplus Отправлено: 21 Сентября, 2015 - 09:57:53 • Тема: 3 вопроса по бд для 5к проекта • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 146
так, mysql
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT region_by.`region_name`, region_by.`region_url`, IFNULL (sum_by.`sum_sum` , 0) AS `new_sum` FROM region_by LEFT JOIN sum_by ON region_by.`region_id`=sum_by.`sum_id` ORDER BY `region_name`

region_id значения (1,2,3,4,5,6)
sum_id (1, 1-1, 1-25-358, 2, 2-25 и тд)
если region_id==1 так оно отдает все строки где sum_id имеет 1
где подвох?


все InnoDB

данных для беларуси например - 500 000
а рубрик 1000 и городов (населенных пунктов) 23000, реально какая то деревня не пользует все 1000 рубрик, а то и вообще не учавствует поэтому и insert on duplicate key update, а если сразу забить, то уже 23 ляма (и это не все счетчики)

я поэтому и интересуюсь - как это можно организовать? а пока пользую то что есть.
чтоб и правильно, и хорошо, стараюсь внимательно вчитываться в каждое слово.
broshurkaplus Отправлено: 19 Сентября, 2015 - 23:06:49 • Тема: 3 вопроса по бд для 5к проекта • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 146
немного проясняется ситуация...

получается что табл. с агрегированными данными (счетчиками) будет всегда консистентной при обновлении ее триггером после создания/удаления объявления, что позволит отдавать всегда свежие данные при чтении с неё и на начальном этапе не использовать мемкеш

в итоге склоняюсь к такому алгоритму:
после создания/удаления объявления триггером на ней выполняем +1/-1 к соответствующим строкам (сейчас строк 6) таблице со счетчиками
+ постоянное чтение по ид без условия и сортировок
в принципе должно работать быстро

+прихожу к выводу, что возможно нужно выкинуть сумму по регионам, которая дергается всегда, что чуть разгрузит бд на 1/6 транзакции обновления как я понимаю

...опять встает вопрос в скорости работы:
1 но какие могут быть скрыты проблемы, ведь в итоге тут будет строк многократно больше чем самих данных (объявлений) ?
2 стоит триггер insert on duplicate, тк какие то рубрики в каких то городах вовсе не задействованы, таблица меньше, возрастает по мере вовлечения рубрик в городах - или стоит изначально забить все возможные варианты, но сразу неимоверно увеличить количество строк
3 в итоге уберем count, но как со скоростью инкрементирования и чтения?
broshurkaplus Отправлено: 19 Сентября, 2015 - 19:30:01 • Тема: 3 вопроса по бд для 5к проекта • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 146
мелкий

дело в том, что в t2 может быть только одна соответствующая строка с двумя полями (ключ варчар и значение)
реально ключ для связи формируется динамически от пользовательских запросов, это условный пример ключ "1" => в т2
1-1
1
1-1256-12
выбираем ключ 1

?вроде как пробела не должно быть IFNULLтут(...


?я кеширую - можно подробней пример или как "дёргать триггером"



ставлю по таймауту тк за это время данные могут (99%)изменятся (в том то и сложность чтоб отдавать как можно более свежие данные , разгрузив бд).
:
добавили объявление - изменилась их сумма в регионе, городе, разделе, категории, рубрике.
это ключи в т2 изменяем значения +1 для ид: (регион, регион-город, регион-город-раздел,...)

в кеш ложу выборки - html 1500-3500 символов, в итоге получаю, пример:
запрос пользователя на главн стр, те для данной страны
отдаю html + html из мемкеша, разобрав в блоки шаблона по разделителю:
из кеша
сумму объявлений по регионам (из т2)
сумму объявлений по разделам (из т2)
итог расчета count сумму объявлений всего/покука/продажа/обмен/беспл атно в данном примере по стране
из скрипта
последние 10 объявлений

если перехожу в раздел => все тоже только для категории
если перехожу в регион => все тоже только для городов региона
если перехожу в город и раздел=> все тоже только для категорий этого раздела по этому городу

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

? может видите какой другой алгоритм

спасибо
broshurkaplus Отправлено: 19 Сентября, 2015 - 17:50:40 • Тема: 3 вопроса по бд для 5к проекта • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 146
lastdays пишет:
По этому использовать тоже нужно с умом

lastdays пишет:
поиск по varchar не лучший вариант


может вы выразите (и еще кто нибудь) мысли более конкретно в контексте вопросов и указанных цифр по пунктам?
broshurkaplus Отправлено: 18 Сентября, 2015 - 21:26:08 • Тема: 3 вопроса по бд для 5к проекта • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 146
чето запутался уже, перестраиваю боевой проект где много count и с 5к хитов сильно тормозит, портал + доска объявлений
собственно

1
Выбрать записи из т1 и присоединить значение из т2 если они существуют или '0'

в t1 ключ автоинкремент , в t2 ключ varchar (в реале1, 1-125-3, 16-5243-128 итд)

t1
1 значениеAAA
2 значениеDDD
3 значениеXXX

t2
1 2

пишу

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT t1.col2, IFNULL (t2.col2, 0) AS zn FROM t1 LEFT JOIN t2 ON t1.id=t2.id


ожидаю
значениеAAA 2
значениеDDD 0
значениеXXX0

получаю
значениеAAA 1
значениеAAA 1
значениеAAA 2
значениеDDD 0
значениеXXX0

если нет ключа в t2 то выдаёт список, где col2 повторяется несколько раз
что может быть или как по другому запросить ?...



и немного теории
2
для получения агрегированных данных (сумм по рубрикам и категориям в разрезе регионов и тд) к нагруженной таблице (частый инсерт апдейт дел) думаю поставить триггер, который будет добавлять/обновлять в другую таблицу (t2 из предыдущ. вопроса) после вставки +1 к нужным строкам - один запрос инсерт с конкатенацией и on duplicate , вставка или обновление за раз всего строго 6 строк.
эта таблица, после полного набора вариантов ид (более 3млн как минимум) в итоге будет только обновляться и пользоваться на чтение
все для того, чтоб меньше использовать count на большом наборе данных

основное - сильно ли это будет нагружать бд (дергание триггером 6 строк по ид варчар) при постоянном чтении по ид?
какой альтернативный вариант организации может быть?



3
пользую memcahe для хранение результатов count запросов на больших данных, храню 1 минуту, +использую lock ключ на 50 сек, а пока идет первый конкурентный запрос отдаю старые данные.
(чтоб не делать count, а делать выборку - для этого и триггер из вопроса 2)
загоняю сразу готовый html под один ключ около 1500-3500 символов, а при выборке, разбиваю массив по разделителю и вывожу в разных блоках...

думаю что готовый html хранить лучше или как?
как проследить сколько у меня хранится значений в 1500-3500 символов, и как такой размер нагрузит мемкеш?

может можно как-то лучше реализовать алгоритм?
(нет никого в реале у кого можно было бы gjkexbnm консультации Недовольство, огорчение)

спасибо
broshurkaplus Отправлено: 17 Сентября, 2015 - 22:49:30 • Тема: Router php • Форум: Вопросы новичков

Ответов: 3
Просмотров: 178
конечно - относительный и путь от корня.

Страниц (24): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB