Таким образом, в основном я переносю таблицу MYSQL
с 50 миллионами + rows
и 40 colums
в базу данных MongoDB
.Эти данные таблицы отображаются на html
table
, и каждый столбец доступен для поиска и сортировки.Чтобы повысить производительность при Mysql
запросах, я делаю subselect
из этой таблицы, фильтруя по столбцу с именем company_id
и ограничивая его 50-тысячными строками и упорядочивая по id
и date
, чтобы получить последние 50-тысячные строки, которыепринадлежит этой компании, а затем из этой subselect
я выполняю другую логику фильтрации и упорядочения, отправляемую внешним интерфейсом.Вот как выглядит Mysql
Query:
SELECT *
FROM (
SELECT field1, field2, field3, field4 -- other fields
FROM myTable
WHERE company_id = 50
ORDER BY id DESC, dateField desc
LIMIT 50000
) AS tb
WHERE tb.field1 = 'A filter'
AND tb.field2 = 'Another filter'
-- more and more filters
ORDER BY tb.FIELD3
Есть способ сделать что-то подобное на MongoDb
table
, используя драйверы db.collection.aggregate()
и Mongo
PHP
?