Начинаем работу
| |
drserj | Дата: Воскресенье, 19.01.2014, 23:20 | Сообщение # 31 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата VV123 ( ) as убрать не могу, кто-то в свое время отказался разрешить редактировать шапку. да и ладно, не ошибка, просто и без него работать будет...
Цитата VV123 ( ) 1. А вот по этому пункту надо что-то решать. По причине схожих проблем с мультилибом и решил сообщить, с учетом того что кой-какой фукционал был взят из либген-библиотекаря. наоборот...
Цитата VV123 ( ) В связи с тем что "любителей" хранить все что скачано становиться все больше да, нет предела извращеньям... хотя, я и сам такой... вся флибуста в двух вариантах + большая часть либруса + FW + одиночные качания... Но я исправляюсь и усиленно давлю ненужное!
Цитата VV123 ( ) и хранят они это в жестком формате репозитория,
и не хотят менять на предложенный другими, проверено... А формат подразумевает не только мд5 в качестве имени, но и наличие фиксированного расширения и фиксированную структуру каталогов внутри репозитория... Я себе месяц почти перегонял триста тыщ....
drSerj
|
|
| |
drserj | Дата: Воскресенье, 19.01.2014, 23:20 | Сообщение # 32 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата VV123 ( ) то надо использовать сначала удаление без поиска, а если система вернет ошибку тогда ипользовать поиск. что еще увеличит время обработки... Не, тут два варианта - или всё, или ничего. Или поддержка формата, или сиди и жди.
Цитата VV123 ( ) Что касается той же актуализации, в мультилибе таки было решено отказаться от промежуточной таблицы. да здрасти... mlactual.* - для чего? Я отказался в таблице отображения от группировок/сортировок, что дало возможность использовать сам грид в стандартном, упрощенном режиме. Иначе сама отрисовка жрала кучу времени и ресурсов. А алгоритм - тот же. И единственное спасение для сотен тысяч записей - полная поддержка фиксированного формата. Жалею, что в свое время не сделал как хотел, повелся на сопли и слезы - хотим и так и сяк. Сейчас не было бы 99% траха и проблем.... VV1236399Цитата Какаято фигня в алгоритме, потому что есть у меня группа в которой 25 тыс. записей и если добавлять в эту группу 1 запись то это условно долго (20-30 сек.) а если добавлять 20-30 записей то пара сек. а х.е.з. я проверить не могу, у меня стольких книг в либгене нет, точнее, их там вообще нет... А проблема возникает, как я понял, только на большом количестве...
drSerj
|
|
| |
VV123 | Дата: Воскресенье, 19.01.2014, 23:41 | Сообщение # 33 |
Генерал-майор
Группа: Проверенные
Сообщений: 304
Статус: Offline
| Цитата drserj Жалею, что в свое время не сделал как хотел, повелся на сопли и слезы - хотим и так и сяк. Сейчас не было бы 99% траха и проблем....
Это наверное еще без меня было...
Добавлено (19.01.2014, 22:41) ---------------------------------------------
Цитата drserj а х.е.з. я проверить не могу, у меня стольких книг в либгене нет, точнее, их там вообще нет... А проблема возникает, как я понял, только на большом количестве...
Да ёпрст, третий раз, вот ссылка:
скачай и проверь
Сообщение отредактировал VV123 - Понедельник, 20.01.2014, 02:35 |
|
| |
drserj | Дата: Понедельник, 20.01.2014, 10:47 | Сообщение # 34 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата VV123 ( ) Это наверное еще без меня было... х.е.з...
Цитата VV123 ( ) Да ёпрст, третий раз, вот ссылка: Цитата VV123 ( ) скачай и проверь
скачал. когда буду проверять - не знаю.
drSerj
|
|
| |
drserj | Дата: Понедельник, 20.01.2014, 23:25 | Сообщение # 35 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата VV123 ( ) select *, (select group_concat(catname separator ', ') from libusercatname join libusercat using(CatId) where libusercat.md5=main.md5) as CatName from main join detail using(md5) left join description using(md5) left join librating using(md5) left join libdownloaddata using(md5) left join libuserkeyword using(md5) left join libuserprim using(md5) left join topics using(topic_id) where COALESCE(lang,"ru")="ru" and `CatName` LIKE "%%" не пойму, что ты хочешь получить в результате???? catname - одни null...
drSerj
|
|
| |
VV123 | Дата: Понедельник, 20.01.2014, 23:57 | Сообщение # 36 |
Генерал-майор
Группа: Проверенные
Сообщений: 304
Статус: Offline
| Цитата drserj ( ) не пойму, что ты хочешь получить в результате???? catname - одни null... Это у тебя null, а у меня до хрена групп и есть записи которые в разных группах, подгруппах, ну вообщем возникает необходимость посмотреть.
|
|
| |
drserj | Дата: Вторник, 21.01.2014, 11:29 | Сообщение # 37 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата VV123 ( ) Это у тебя null, а у меня до хрена групп и есть записи которые в разных группах, подгруппах, ну вообщем возникает необходимость посмотреть. дык конкретно, что ты хочешь увидеть в результате?
drSerj
|
|
| |
VV123 | Дата: Среда, 22.01.2014, 11:28 | Сообщение # 38 |
Генерал-майор
Группа: Проверенные
Сообщений: 304
Статус: Offline
| Цитата drserj ( ) дык конкретно, что ты хочешь увидеть в результате?
Вот есть у меня группа "не целевое" и в ней подгруппы "худ. лит.", "детская", "комиксы" и т.п. хочу посмотреть это в одной куче, чтоб видеть количество и общий размер, вот таким запросом: CatName` LIKE "худ. лит." or CatName` LIKE "детская" or CatName` LIKE "комиксы" or ....
Сообщение отредактировал VV123 - Среда, 22.01.2014, 11:29 |
|
| |
drserj | Дата: Среда, 22.01.2014, 21:32 | Сообщение # 39 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата VV123 ( ) Вот есть у меня группа "не целевое" и в ней подгруппы "худ. лит.", "детская", "комиксы" и т.п. хочу посмотреть это в одной куче, чтоб видеть количество и общий размер, вот таким запросом: CatName` LIKE "худ. лит." or CatName` LIKE "детская" or CatName` LIKE "комиксы" or Завтра на работе, если время будет - подумаю.
drSerj
|
|
| |
VV123 | Дата: Четверг, 23.01.2014, 19:15 | Сообщение # 40 |
Генерал-майор
Группа: Проверенные
Сообщений: 304
Статус: Offline
| Цитата drserj ( ) По поводу удаления - каждый файл удаляется отдельным запросом, и каждый раз производится поиск файла. Чем больше файлов - тем значительно медленнее этот поиск производится. И это не вина программы, сколько реалии файловой системы. Согласен, изменяя алгоритм, ужесточая рамки форматов, можно добиться прироста скорости на несколько порядков. Но это значит - накладывать жесткие ограничения на способ хранения данных. Я столкнулся с этим в мультилибе, где у человека полторы сотни тысяч одиночных файлов. При таком раскладе файл искался порядка 20-30 секунд. Пришлось для любителей подобной рассыпухи принять очень жесткий формат, при котором поиск файла не производится, а ссылка на него формируется по заданному алгоритму. Обращение к файлу уменьшилось до десятых долей секунды. Но это касается тех, у кого десятки или сотни тысяч файлов.
А зачем формировать ссылку по заданному алгоритму, можно в таблице libdownloaddata добавить колонку с полным путем к файлу и этой записью и оперировать, к тому же это решит проблему (о которой упоминал bookwarrior) сохранения имени файла и доступа к нему из программы т.е. можно будет не добавлять мд5 в конце имени при импорте.
|
|
| |
drserj | Дата: Четверг, 23.01.2014, 21:57 | Сообщение # 41 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата VV123 ( ) А зачем формировать ссылку по заданному алгоритму, можно в таблице libdownloaddata добавить колонку с полным путем к файлу и этой записью и оперировать, к тому же это решит проблему (о которой упоминал bookwarrior) сохранения имени файла и доступа к нему из программы т.е. можно будет не добавлять мд5 в конце имени при импорте. а за тем, что местоположение может быть не одно, и привязывать книгу к полному пути - крайне нежелательно. Это уже говорилось не раз. Динамическое же формирование пути (путей) по заданному алгоритму позволяет полностью избавиться от проблем без потери скорости при поиске. И этот вопрос больше не обсуждается. Так будет.
drSerj
|
|
| |
VV123 | Дата: Пятница, 24.01.2014, 14:28 | Сообщение # 42 |
Генерал-майор
Группа: Проверенные
Сообщений: 304
Статус: Offline
| Цитата drserj ( ) И этот вопрос больше не обсуждается. Так будет. Ну нельзя так разрушать последние надежды пользователя на светлое будущее Цитата drserj ( ) а за тем, что местоположение может быть не одно, и привязывать книгу к полному пути - крайне нежелательно. Это уже говорилось не раз. Динамическое же формирование пути (путей) по заданному алгоритму Здесь можно по подробнее. Для меня это одно и тоже. Т.е. есть путь G:\Library\709000\0bd2d1a8c3d59e0dbe46448cbd486b30 он в таблице libdownloaddata привязан к мд5, прога берет его и испоьзует без всяких поисков или прога берет мд5 и по алгоритму подставляет имя папки + имя диска получает тот же путь, в чем разница. Привязка к полному пути тоже не статична и меняется при импорте или актуализации.
|
|
| |
drserj | Дата: Суббота, 25.01.2014, 00:18 | Сообщение # 43 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата VV123 ( ) Ну нельзя так разрушать последние надежды пользователя на светлое будущее ну уж нет, хватит жевать сопли, пора начинать повелевать !
Цитата VV123 ( ) Здесь можно по подробнее. Для меня это одно и тоже. Т.е. есть путь G:\Library\709000\0bd2d1a8c3d59e0dbe46448cbd486b30 он в таблице libdownloaddata привязан к мд5, прога берет его и испоьзует без всяких поисков или прога берет мд5 и по алгоритму подставляет имя папки + имя диска получает тот же путь, в чем разница. Привязка к полному пути тоже не статична и меняется при импорте или актуализации.
Новый формат хранения контента в мультилибе: папка контента+\XX\YY\MD5.zip, где XX-первые две цифры от MD5, YY - вторая пара цифр. Смысл в том, что ссылка формируется динамически, самой программой без поиска файла по списку. Если папок с контентом несколько - будет несколько попыток обращения к файлу. Папку контента можно изменить, что нельзя будет сделать, если я пропишу путь G:\Library\709000\0bd2d1a8c3d59e0dbe46448cbd486b30. Зачем XX\YY? Для ускорения обращения к файлу. Если в каталоге тысячи файлов (а у меня, например, более 350 тысяч) то войти в каталог, мягко говоря, затруднительно. Любой файловый менеджер обгадится... А так - быстро и красиво. Почему добавлено принудительное расширение .zip? Потому-что в поле таблицы ext имеется неоднозначность - это может быть как расширение документа, так и архива. Ориентироваться на него при поиске нельзя. Всё вышеописанное дает огромное преимущество как при поиске файла, так и в процессе актуализации. Это максимально удобный и самый быстрый вариант. Если в обычной ситуации на таком количестве файлов поиск книги производился от 30 секунд до нескольких минут на весьма быстром компе, то тут - миллисекунды. Да и однозначность (что очень немаловажно) в определении имени файла.
drSerj
|
|
| |
drserj | Дата: Суббота, 25.01.2014, 00:24 | Сообщение # 44 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата ;6416 Вот есть у меня группа "не целевое" и в ней подгруппы "худ. лит.", "детская", "комиксы" и т.п. хочу посмотреть это в одной куче, чтоб видеть количество и общий размер, вот таким запросом: CatName` LIKE "худ. лит." or CatName` LIKE "детская" or CatName` LIKE "комиксы" or Вот подумал, и даже не знаю чем помочь. Тот вариант, который ты пытался использовать - не прокатит, и это однозначно. Вся проблема в том, что заранее не известно количество вложений. В отличие от оракла, насколько я помню, в MySQL (да и в других базах) обычным запросом рекурсию обхода дерева не решишь. Надо писать в мускуле функцию... А вот хватит ли у тебя знаний... Впрочем, гугль в помощь
drSerj
|
|
| |
Ustsv | Дата: Четверг, 13.03.2014, 08:55 | Сообщение # 45 |
Рядовой
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Спасибо за LIBGEN, но набралось чуток вопросов. - На ftp://libgen.org/dbdumps/ поменялся формат баз? По дефаулту забирает сильно неполную, от чего либген выдает ошибки. Перенастроил на http://gen.lib.rus.ec/dbdumps/, но где поменять имена баз? Сделал распаковку вручную, переименовал, считалось нормально.
- Рабочее место 1.5G архив + 5G распаковка + 5G конвертация + 5G база, несколько не ожидал, Ну и 1ч10мин только на конвертацию.
- В связи со п2, вопрос, не будет либгена, с возможностью работы с внешней базой? Все одно MariaDB крутится на машине, и сильно быстрее и всем в локалке.
- И разделением прав на админской версии и пользователям, в мультилиб сделал отдельные аккаунты, создание баз и обновление только от рута, у юзеров только для чтение.
- Может можно уговорить хозяев библиотек делать инкрементные выкладки дампов баз?
- В поиске по умолчанию идет OR. Как-то AND привычнее,
и * понимает только после запроса. Упс, нашел, чекбокс полнотекстовый поиск работает наоборот. - Можно удлинить имя файла для экспорта, режет ~200 символов.
Сообщение отредактировал Ustsv - Четверг, 13.03.2014, 08:56 |
|
| |
|