Добавление к предыдущим ответам того факта, что MS SQL Server добавляет поддержку графической архитектуры, начиная с 2017 года .
Следует описанному шаблону с таблицами Nodes и Edges (которые должны быть созданы со специальными ключевыми словами «AS NODE» и «AS EDGE»).
В него также введено новое ключевое слово MATCH «для поддержки сопоставления с образцом и прохождения по графу», как это (Friend - это имя edge . ] в приведенном ниже примере):
SELECT Person2.name AS FriendName
FROM Person Person1, friend, Person Person2
WHERE MATCH(Person1-(friend)->Person2)
AND Person1.name = 'Alice';
Существует также очень хороший набор статей о базах данных графиков SQL Server на Redgate Hub .
Примечание: Как и большинство сортировок PHP функции sort () использует реализация »Quicksort.
Основные функции PHP будут реализованы на языке c, а не PHP, поэтому они должны быть значительно быстрее, чем все, что вы можете написать самостоятельно на PHP. Будут случаи, когда быстрее написать свой собственный, но я предполагаю, что это будут случаи, когда у вас есть очень конкретный случай, и вы можете сделать свои собственные конкретные оптимизации для этого. Я думаю, что здесь это вряд ли.
Используйте встроенную функцию сортировки. Быстрая сортировка - это простой алгоритм, но для получения хорошей производительности на компьютерах, которые фактически используются, требуется немного тонкости. Более чем вероятно, что встроенная функция уже более оптимизирована, чем все, что вы могли бы написать за разумный промежуток времени. (Ускорение с постоянным коэффициентом от написания на C вместо PHP также, вероятно, полезно.)
Если вы сортируете так много элементов, что функция сортировки замедляет работу, вы, вероятно, делаете что-то не так. (В конце концов, это PHP. Вы должны использовать язык общего назначения для обработки больших объемов данных. Вам будет проще написать код, и он будет работать быстрее.)
Фактически я сделал это для точки данных в презентации, которую собираю. Тест сортирует массив из 250 000 целых чисел, используя встроенную функцию сортировки и реализацию алгоритма быстрой сортировки, написанного на php. Содержимое массива абсолютно одинаково для обоих прогонов, данные рандомизированы, а указанное время предназначено только для выполнения сортировки, а не для другой обработки, необходимой для вызова интерпретатора php.
Результаты:
Native sort implementation: 1.379 seconds PHP quicksort implementation: 30.615 seconds
Определенно используйте нативная реализация. Так должно быть для любого интерпретируемого языка.
Результаты для других языков, которые я тестировал в тех же условиях, используя ту же реализацию на том же оборудовании и в той же ОС, обеспечивают интересное сравнение производительности и позволяют увидеть результат PHP в перспективе:
C: 0.107 seconds Java: 0.250 seconds JavaScript (FF3): 4.401 seconds
В частности,
Для справки здесь есть реализация PHP:
https://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting/Quicksort#PHP