Эта ошибка возникает в двух вариантах:
$arr = [1, 2, 3];
Синтаксис инициализатора этого массива был введен только в PHP 5.4; это приведет к возникновению ошибки парсера в версиях до этого. Если возможно, обновите свою установку или используйте старый синтаксис:
$arr = array(1, 2, 3);
См. Также этот пример из руководства.
$suffix = explode(',', 'foo,bar')[1];
Результаты функции разыменования массива также были введены в PHP 5.4. Если обновление невозможно, вам нужно использовать временную переменную:
$parts = explode(',', 'foo,bar');
$suffix = $parts[1];
См. Также этот пример из руководства.
Хеши быстрее, чем B-деревья для случаев, где у Вас есть известное значение ключа, особенно известное уникальное значение.
Хеши должны использоваться, если рассматриваемый столбец никогда , намеревался быть просканированным сравнительно с <
или >
команды.
Хеши O(1)
сложность, B-деревья O(log n)
сложность (iirc), следовательно, для больших таблиц с уникальными записями, выбирая ITEM="foo"
, они будут самым эффективным способом искать его.
Это особенно практично, когда эти уникальные поля используются на условии объединения.
Я не пробовал этого, но рассматриваю этот подход, чтобы использовать хеш-индексы для временных журнальных таблиц.
Насколько я понимаю, они строятся быстрее, занимают меньше места и запрос немного быстрее, чем b-дерево.
Согласно этому тесту хеш-индексы немного быстрее и несколько меньше, чем индексы BTree. Однако вы не можете сделать с ними уникальный хэш-индекс - кроме того, они не зарегистрированы в WAL.