Как ускорить DataTables jQuery?

День добрый всем!
На сайте есть таблица со списком записей. Записи выводятся с помощью DataTables Server-Side. Проблемы начались как только кол-во записей превысило 100 тысяч. Данные подгружаются около 10 секунд. В то же время в phpMyAdmin данные грузятся быстро. Запрос обрабатывается за 0,45 секунд.
Посоветуйте что сделать с DataTables или на что перейти с него?
Вот такой запрос на получение данных у меня
$data = SSP::sql_exec( $db, $bindings,
"SELECT SQL_CALC_FOUND_ROWS `".implode("`, `", SSP::pluck($columns, 'db'))."`
FROM `$table` LEFT JOIN users ON table1.user_id=users.user_id
$where
$order
$limit"
);

К стандартному запросу DataTables дописан Left Join и всё.
Выборка данных например в phpMyAdmin происходит быстрее в разы. Практически за секунду страница прогружается.
0428e095734f469895217aa6f41430dd.png
Вызов DataTables вот такой:
$('#table').dataTable( {
	"aaSorting": [],
    "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
        var index = (iDisplayIndexFull + 1);
        $("td:first", nRow).html(index);
            return nRow;
        },
    "processing": true,
    "serverSide": true,
    "ajax": "get_all.php",
    "columns": [
        { "data": "id" },
        { "data": "actions" },
        { "data": "test_type" },
        { "data": "date_add" }
        { "data": "result" },
        { "data": "user" }
        ]
});
  • Вопрос задан
  • 949 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
Включите профилировщик, поищите узкие места в работе скрипта. Возможно там много прогулок по DOMу через селекторы с поиском значений атрибутов. Опять же - у вас 100000 записей. Вы их извлекаете все из базы, а потом выясняете какие отдать на Client-Side?
Ответ написан
@asdz
Developer Tool в браузере, смотрите время выполнения запросов. Как 10 записей могут 10 секунд загружатся?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы