|
|
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
BlazkowiczORM как раз позволяет избегать однотипных запросов с массой JOIN-ов. Когда у тебя в системе пачки жирных SQL ни о какой "простоте" речи быть не может. С точностью до наоборот. ORM запрещает запросы с массой JOIN-ов. Вплоть до того, что приходится писать кучу ХП, чтобы только обеспечить нормальную работу ORM, которая "не может" "кучу JOIN-ов". Там где можно обойтись одним запросом, приходится либо писать кучу императивного кода, либо писать кучу ХП. Поэтому я и говорю учить Hibernate не надо. Если что-то простое, то хватает spring-data-jpa - декларативное описание простых запросов + готовый RESTFULL API для БД. Если сложное, то JdbcTemplate, его возможности ограничены только возможностью SQL (соответствующего JDBC-драйвера) А простота такова, что не создает проблем. Т.е. ты не борешься с "особенностями" фреймворка, а решаешь задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 14:37 |
|
||
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
вадяесли для тебя написание хорошего запроса является сложностью - это твоя проблема. Написание вообще ни для кого не является сложность. Наколбасить любой может мама не горюй. Проблема потом в том чтобы в эту колбасу вносить исправления. вадяоднотипные запросы это не проблема и этого пугаться не стоит. Copy/Paste наше всё. вадяc помощью ORM невоможно построить наиболее быструю систему Сколько раз нужно повторять что производительность пофигу. Масштабируемость важнее. вадя, ни одна прослойка не сможет заменить голову программмиста, владеющего нормальными знаниями sql, ни одна прослойка не сможет воспользоваться всеми возможностями каждой субд. все эти прослойки используют лишь минимальную часть возможностей субд. Лирическое отступление ни о чем. Ты опять споришь с тем что сам выдумал. вадяни одна прослойка не сможет использовать (в применении к mysql) операторы case, concat, concat_ws, group_cocat и куча прочих. по сути прослойка - это только джойны. Любые SQL функции в Hibernate уже работают лет 10. вадяавторКто с этим спорит? Я точно так же знаю десятки примеров, когда построение системы начинают с GUI. Выходит Delphi - говно. это не значит, что эти примеры - правильное построение систем. Но следуя твоей логике Delphi всё равно говно потому что не запрещает так писать. "Ведь нормальную голову программиста никаким (подставь любой термин) не заменить." Вот и вся твоя аргументация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 17:49 |
|
||
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВ другом проекте как-то делал очень клевый фильтр. Работает как поиск в Windows 10. Просто набираешь текст, а фильтр, обновляет таблицу, добавля like критерий к запросу. А я щас разгребаю последствия такого одного "клёвого фильтра". Много like-ов по многим полям... Full-table-scan... Денормализую. Добавляю CONTEXT-индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 18:24 |
|
||
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
авторНаписание вообще ни для кого не является сложность. Наколбасить любой может мама не горюй. Проблема потом в том чтобы в эту колбасу вносить исправления. если написанное тобой - наколбашено - то да, в хорошо постоенную систему можно без проблем вносить изменения. разбираться в чужом sql - ещё проже , чем в коде java. да и счас есть куча инструментов позволяющих намного упростить данное действо. если ты по-старинке пишешь sql запросы в блокноте, то да , но это твои проблемы. я пользуюсь DbForge, и хранимки и запросы строю в гуи, и мне нет проблем разбираться практически в любой сложности запроса. авторСколько раз нужно повторять что производительность пофигу. Масштабируемость важнее. ну вот и получаем кучу томознутых систем. авторЛюбые SQL функции в Hibernate уже работают лет 10. ты путаешь мух с котлетами, о чем тебе и сказал mad_nazgul Код: plaintext 1. в итоге получается -написать запрос для прослойки, потом прослойку заставить делать ещё что-то... потом ещё и разбираться, что сотворила эта прослойка... вместо того чтоб написать сразу необходимое. авторНо следуя твоей логике Delphi всё равно говно потому что не запрещает так писать. "Ведь нормальную голову программиста никаким (подставь любой термин) не заменить." Вот и вся твоя аргументация. написать гавнокод можно на любом ЯП, но это не означает , что этот ЯП гавно. авторвадя, ни одна прослойка не сможет заменить голову программмиста, владеющего нормальными знаниями sql, ни одна прослойка не сможет воспользоваться всеми возможностями каждой субд. все эти прослойки используют лишь минимальную часть возможностей субд. Лирическое отступление ни о чем. Ты опять споришь с тем что сам выдумал. ты просто не представляешь, что можно сделать , зная достаточно хорошо возможности конкретной реализации субд.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 18:31 |
|
||
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
maytonBlazkowiczВ другом проекте как-то делал очень клевый фильтр. Работает как поиск в Windows 10. Просто набираешь текст, а фильтр, обновляет таблицу, добавля like критерий к запросу. А я щас разгребаю последствия такого одного "клёвого фильтра". Много like-ов по многим полям... Full-table-scan... Денормализую. Добавляю CONTEXT-индекс. я тоже делаю такие фильты, но только всё работет без проблем . и многое зависит от использования конкретной субд. к примеру mysql 5.7.ХХ уже использует для такого рода поиска индексы. без денормализации. к примеру в таблице с 10 лямами строк - полный поиск (заранее не существующей записи, т.е. перебор всех строк) - 4 сек практически у меня не было необходимости производить поиск в таком объёме. несколько сотен тысяч - реальный объём, - поиск многовенный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 18:41 |
|
||
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВ другом проекте как-то делал очень клевый фильтр. Работает как поиск в Windows 10. Просто набираешь текст, а фильтр, обновляет таблицу, добавля like критерий к запросу. такой фильтр я начал использовать в конце 90-х.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 18:55 |
|
||
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
вадяя тоже делаю такие фильты, но только всё работет без проблем . и многое зависит от использования конкретной субд. к примеру mysql 5.7.ХХ уже использует для такого рода поиска индексы. без денормализации. к примеру в таблице с 10 лямами строк - полный поиск (заранее не существующей записи, т.е. перебор всех строк) - 4 сек практически у меня не было необходимости производить поиск в таком объёме. несколько сотен тысяч - реальный объём, - поиск многовенный Я почти не работал с mysql и не знаю как там устроен индексный поиск. Но в большинстве dbms если мы указываем attribute like '%'+search_expression+'%' то оптимизатор выбирает FTS. И кстати... 4 секунды - это достаточно долго. Помним маркетинговое правило 3х секунд. Клиент уходит не дождавшись на другую вкладку. Для корпоративных систем возможно 4 сек это и нормально но если подумать о постоянной нагрузке - то дело плохо. Нельзя FTS-ить одну таблицу постоянно. Должны быть паузы в нагрузке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 19:39 |
|
||
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
maytonЯ почти не работал с mysql и не знаю как там устроен индексный поиск. Но в большинстве dbms если мы указываем attribute like '%'+search_expression+'%' то оптимизатор выбирает FTS. я не даром указал версию mysql, в нижних версиях аналогичный поиск происходил 30 сек. maytonИ кстати... 4 секунды - это достаточно долго. Помним маркетинговое правило 3х секунд. Клиент уходит не дождавшись на другую вкладку. но в таком поиске не переход на страницу :) и это время 10 000 000 строк, повторюсь, реальная задача поиск в наборе товаров, поставщиков.. а это максимум десятки-сотни тысяч. maytonДля корпоративных систем возможно 4 сек это и нормально но если подумать о постоянной нагрузке - то дело плохо. Нельзя FTS-ить одну таблицу постоянно. Должны быть паузы в нагрузке. согласен, но в используемых с этим поиском базах (access, mssql, mysql) это не сказывалось особо на нагрузке... зато позволяло организовать работу операторов настолько быстрой и удобной, что они могли подготовить к передаче по факсу счёт во время телефонного заказа клиента с учетом возможных замен, остатков, резервов и поступлений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 20:00 |
|
||
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
mayton, PS веб-проекте такой поиск по вводу очередного символа, в наборе из 28000 наименований, в пути браузер-сервер-приложение-база-приложение-сервер-браузер - задержки не ощущается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 20:05 |
|
||
|
jdbc/hibernate pagination
|
|||
|---|---|---|---|
|
#18+
mad_nazgulПоэтому я и говорю учить Hibernate не надо. Если что-то простое, то хватает spring-data-jpa - декларативное описание простых запросов + готовый RESTFULL API для БД. )) ну люди то разные. Хибер и спринг по сложности одного поля ягоды. И одним легче идёт спринг, другим хибер. Вот конкретно тебе легче идёт спринг. Мне легче хибер. У вади вообще свой путь, т.к. он не любит ни то ни другое. Главное чтобы на что то одно не молится. Счас Век не такой). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2016, 13:38 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2123335]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 422ms |

| 0 / 0 |
