Селективно попасть в Кассандру быстрее обычного? - PullRequest
6 голосов
/ 06 мая 2011

Я хотел бы знать, если это:

$column_family->get('row_key', $columns=array('name1', 'name2'));

Быстрее, чем более гибкий, который я сейчас использую:

$column_family->get('row_key');

Метод 1, конечно, сложнее реализовать, ноэто даст меньше нагрузки / пропускной способности / задержки?

Ответы [ 2 ]

3 голосов
/ 07 мая 2011

Кассандра не mysql, поэтому неудивительно, что некоторые вещи там другие.:)

В этом случае модель хранения разреженных строк Cassandra означает, что для небольших номеров столбцов версия полной строки будет быстрее, поскольку Cassandra не нужно десериализовать и проверять ееЗаписи столбцов на уровне строк.

Конечно, при большем количестве столбцов дополнительная работа по десериализации большего, чем вам нужно, снова будет доминировать.

Итог: беспокоиться об этом почти наверняка преждевременно.Если это не так, проверьте.

2 голосов
/ 06 мая 2011

Первый - быстрее, особенно если вы работаете с большими таблицами, которые содержат много столбцов.

Даже если у вас есть только два столбца с именами name1 и name2, при указании их имен следует избегать извлечения имен столбцов из структуры таблицы на стороне MySQL.Так что это должно быть быстрее, чем использование селектора *.

Однако, проверьте свои результаты, используя microtime () в PHP для больших таблиц, и вы увидите, чтоЯ говорю о.Конечно, если у вас есть более 20 столбцов в таблице, и вы хотите извлечь их все, проще поставить *, чем перечислить все эти имена столбцов, но с точки зрения скорости, перечисление столбцов происходит немного быстрее.

Лучший способ проверить это заключение - проверить его самостоятельно.

...