Есть зaдaчи, кaкие в рaмкaх peляциoнных СУБД нe oблaдaют yнивepcaльных peшeний и для тoго чтoб пoлyчить хoть кaкой-тo пpиeмлeмый итoг, пpиводится пpидyмывaть крyглый кoмплeкт костылей, кой ты зaтем гopдo величaешь “Архитектyрa”. Не тaково дaвным-дaвно мнe бyдтo oдинeхoнeк полaдилa именно тaкaя.
Предпoложим, нaселяет кой-кaкие сyти А и Б, связaнные мeждy собой пo пpинципy One-to-Many . Количество экземпляров дaнных сyтей достaтoчно нeмaло. При отoбрaжении сyтей для пoльзовaтеля нeобходимо пpименить шеренгa сaмосильных критериев, бyдтo для сyти А тaково и для сyти Б. Причем итoгом пpименeния критериев изобрaжaют множествa пoлнo кpyпный мoщнocти — рaспoрядкa нecкoльких миллионов зaписей. Критерии фильтрaции и пpинцип сортировки зaдaется пoльзовaтелем. Кaк (я бы eщё спросил: Зaчем им миллионы зaписей нa oднoм экpaнe? — однaко болтaют нaдо) пoкaзaть вce этo пoльзовaтелю зa эпoхa 0 секyнд? Решaть этaкие зaдaчи стoлетие зaнимaтельно, однaко их решение сильно зaвисит от СУБД, пoд yпрaвление ... Читать дальше »
Желалось бы поделиться экспериментом по применению MySQL с сбережением этих в памяти, но не на диске. Сие дозволило нам сжать load average сервера, какой благодаря операций с диском стал сильно вырастать.
В некоем плане мы употребляем MySQL с движком MyISAM под Debian Lenny. Всеобщие данные загружаются в оперативку беса на С++, а пользовательские исходные всего один раз заниматся при логине и переодически хранятся на протяжении работы юзера. Вдобавок сохраняются при логауте (или по таймауту). По причине описаной схемы select-ов очень менее, нежели update-ов (select: 24%, delete: 4%, update: 61%, insert: 11. В принципе эта неувязка — не админская, а обусловлена не вовсе успешным подбором прибора. Очень вероятно, нам бы подошел InnoDB, который употребляет row-level locking (блокировка по записям), а не table-level locking (блокировка всей таблицы при записи) как около MyISAM. Впрочем размер данных записываемых на диск сие едвали сжало бы. Если посмотреть с другой стороны, нам SQL особе ... Читать дальше »
Числится так — имеется задачка жигануть исходные из таблицы mysql в простейший csv файлик, чтобы его раскрыть быстренько в excel. Для чего белоснежным людям требуется подобная мистика — ми ни в какое время недослышать, однако раз клиент просил, то я делал. Значит так, отзываемся в администрация рента и строчим:
mysqldump -u [USER_NAME] -p "--where=[WHERE]" "--fields-terminated-by=," "--tab=./" [DB_NAME] [TABLE] > [TABLE].txt p.s. директория в какой проделывается данная бригада обязана быть раскрыта для записи, или же оно браниться станет. ... Читать дальше »
Фактически, сейчас был запощен топик "
", в каком указывалось, что MongoDB превосходит по производительности MySQL в разы. Хех, когда подобное пишут — я сходу лезу испытывать и колебаться. Я полез в исходники необычного теста (благодарю за публикацию). И как оказывается создатель оригинального топика ошибся в 3 знака и в самом деле не все так: В оригинале: MongoDB быстрее MySQL строчит в 1.пятого раза (Правда, хотя около меня в три раза) В оригинале: MongoDB быстрее MySQL читает в 10 раз (Недостает, на самом деле — MongoDB приблизительно на равновеликих плюс-минус 10-30 Сопоставление тут выходит лишь как key-value сторидж (запись-чтение по primary key). На графике — количество операций в секунду, (более — наилучше), шкала счетная. Заключительная строчка — то, что испытывал автор оригинального топика (неверное, не в рецензенту — все мы заблуждаемся и обучимся). Но теперь подробнее о ошибке... Значит так, опечатка оригинала была в этом он поделал SELECT так: test.find({'_id':ran ... Читать дальше »
Оптимизация явно не является коньком MySQL сервера. Цель отправной статьи объяснить разработчикам, какой-никакие плотно не сидятся с базами данных и иногда не разумеют, по какой-никакой первопричине запрос, какой-никакой хорошо отрабатывает в другых СУБД, в MySQL богопротивно остаст, как оптимизируется конструкция between в MySQL.
MySQL применяет rule based оптимизатор. Зачатки cost based оптимизации в нем конечно ищутся, хотя не в соответствующей мерке, в какой их желалось бы видеть. По исходной первопричине достаточно часто мощь получаемых после применения фильтров множеств вычисляются ложно. Это приводит к оплошностям оптимизатора и выбору неверного плана выполнения. При ежели полученные between оптимизации невозможно преобразить приоткрытым указанием: индексов для исполнения запроса и распорядка соединения таблиц. Для начала оглядим баг: Чтобы изучить суть бага сформируем опытный набор этих в габарите 125 миллионов записей. drop table if exists pivot; drop table if exists big_t ... Читать дальше »
На так давно довелось осуществить махинацию с БД какая, как представляется как может показаться, асбсолютно невозможна средствами MySQL. Вблизи около меня была матрица продуктов, сортировка каких исполняется добавочным столбцом `order_num` ('последовательный номер'): она дает возможность высокомерничать прирученную сортировку продуктов.
Однако вот понадобилось автоматом уписать данный столбец так, дабы продукты очутились отсортированы по наименованию: т. е., с вблизи ограничений, видоизменить столбец `order_num` в всей таблице. Весьма желалось встать средствами MySQL в отсутствие привлечения каких-нибудь добавочных приборов, и задачка была решена Сложность задачки вдобавок в этом MySQL не может сделать UPDATE таблицы и в одно время декламировать из ее: в MyISAM таблица эксклюзивно объединяется при записи и недостает способности изготовить чтение в подзапросе. , , , * This source code was highlighted with . Сначало товары отсортированы дьявол знает как. Необходимо просортировать ... Читать дальше »
Привет!
Полнотекстовый поиск данных в InnoDB – это известная головная боль многих разработчиков под MySQL / InnoDB. Для тех, кто не в курсе дела я объясню. В типе таблиц MyISAM есть полноценный полнотекстовый поиск данных, однако сама таблица исторически имеет ограничения, которые являются принципиальными в отдельных проектах. В более «продвинутом» типе таблиц InnoDB полнотекстового поиска нет. Вот и приходится мириться бедным разработчикам либо с ограничениями MyISAM, либо с отсутствием поиска в InnoDB. Я хочу рассказать о том, какие есть способы организовать полноценный поиск в InnoDB без магии и исключительно штатными средствами. Также будет интересно сравнить скоростные характеристики каждого способа. Для примера возьмем небольшую таблицу с 10000 записями. В этой таблице мы храним данные пользователей сайта. На самом сайте есть форма поиска пользователей, в которую можно ввести произвольный запрос вида «Толстой Ясная Поляна». Для обработки такого запроса поиск должен осуществл ... Читать дальше » |