Что заставляет таблицы должны быть восстановлены?

Сортирует ключи рекурсивно, сохраняя ссылки.

function sortKeys(o){
    if(o && o.constructor === Array)
        o.forEach(i=>sortKeys(i));
    else if(o && o.constructor === Object)
        Object.entries(o).sort((a,b)=>a[0]>b[0]?1:-1).forEach(e=>{
            sortKeys(e[1]);
            delete o[e[0]];
            o[e[0]] = e[1];
        });
}

Пример:

let x = {d:3, c:{g:20, a:[3,2,{s:200, a:100}]}, a:1};
let y = x.c;
let z = x.c.a[2];
sortKeys(x);
console.log(x); // {a: 1, c: {a: [3, 2, {a: 1, s: 2}], g: 2}, d: 3}
console.log(y); // {a: [3, 2, {a: 100, s: 200}}, g: 20}
console.log(z); // {a: 100, s: 200}
11
задан ejunker 18 September 2008 в 20:56
поделиться

4 ответа

Может быть несколько причин, таблицы повреждаются, это обсуждено подробно в руководстве.

Для борьбы с ним следующие вещи работают лучше всего:

  1. Удостоверяйтесь Вы всегда завершение работы MySQL правильно
  2. Рассмотрите использование - myisam-восстанавливают опцию автоматически проверить/восстановить Ваши таблицы, если завершение работы не было сделано правильно
  3. Удостоверьтесь, что Вы находитесь на новых версиях, поскольку известные ошибки повреждения обычно исправляются как можно скорее
  4. Проверьте свои аппаратные средства дважды с тестом, чтобы видеть, вызывают ли они проблемы. Инструменты как sysbench и memtest86 могут часто помогать проверить, работают ли вещи, как они должны.
  5. Удостоверьтесь, что ничто не касается каталога данных внешне, такого как антивирусные проверки, резервные программы, и т.д...
6
ответ дан 3 December 2019 в 09:21
поделиться

Обычно, это происходит, когда база данных не закрывается правильно, как системный катастрофический отказ или аппаратная проблема.

3
ответ дан 3 December 2019 в 09:21
поделиться

Это могли быть много вещей, но MySQL Performance Blog упоминает плохую память, ОС или ошибки MySQL, которые могли вызвать скрытое повреждение. Кроме того, это и другая статья упоминают несколько вещей иметь в виду при выполнении восстановления катастрофического отказа.

0
ответ дан 3 December 2019 в 09:21
поделиться

Раньше я получал ошибки от mysql, как и вы.

Я решил свои проблемы таким образом

  1. Преобразовать все таблицы myisam в InnoDB (вы можете выполнить поиск «myisam vs InnoDB» в stackoverflow.com и в поисковых системах, чтобы выяснить, почему)
  2. Чтобы получить максимальную производительность от MySQL, используйте стороннюю программу MONyog (MySQL Monitor и Advisor) и советы по проверке производительности

Эти два шага спасли меня. Надеюсь, они вам тоже очень помогут.

3
ответ дан 3 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

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