, с другой стороны, я могу себе представить, что внутренне СУБД будет вычислять хэш-ключи для уменьшения штрафа.
blockquote>БД необходимо поддерживать B-Tree (или аналогичное структуры) с ключом, чтобы упорядочить их.
Если ключ хэширован и сохранен в B-Tree, это будет прекрасно проверять уникальность ключа - ключ все равно может быть эффективно просмотрен. Но вы не сможете эффективно искать диапазон данных (например, с помощью
LIKE
), поскольку B-Tree больше не упорядочивается в соответствии со значением String.Итак, я думаю, что большинство БД действительно хранят String в B-Tree, которое может (1) занимать больше места, чем числовые значения, и (2) требовать перебалансировки B-Tree, если ключи вставлен в произвольном порядке (нет понятия увеличения значения, как с числовым pk).
Штраф на практике может варьироваться от незначительного до огромного. Все зависит от использования, количества строк, среднего размера строкового ключа, запросов, которые соединяют таблицу и т. Д.
Из Google Font Directory примеров:
@font-face {
font-family: 'Tangerine';
font-style: normal;
font-weight: normal;
src: local('Tangerine'), url('http://example.com/tangerine.ttf') format('truetype');
}
body {
font-family: 'Tangerine', serif;
font-size: 48px;
}
Это работает в кросс-браузерном режиме с .ttf, я думаю, что он может работать с .otf. ( Википедия говорит, что .otf в основном обратно совместим с .ttf) Если нет, вы можете конвертировать .otf в .ttf
. Вот несколько хороших сайтов:
Хороший учебник:
Другая информация:
Вы можете реализовать свой OTF
шрифт, используя @ font-face, например:
@font-face {
font-family: GraublauWeb;
src: url("path/GraublauWeb.otf") format("opentype");
}
@font-face {
font-family: GraublauWeb;
font-weight: bold;
src: url("path/GraublauWebBold.otf") format("opentype");
}
Однако, если вы хотите поддерживать широкий спектр современных браузеров , я бы порекомендовал вам: переключитесь на WOFF
и TTF
типы шрифтов. Тип WOFF
реализован каждым основным настольным браузером, а тип TTF
является запасным вариантом для старых браузеров Safari, Android и iOS. Если ваш шрифт бесплатный, вы можете конвертировать его, например, с помощью onlinefontconverter .
@font-face {
font-family: GraublauWeb;
src: url("path/GraublauWebBold.woff") format("woff"), url("path/GraublauWebBold.ttf") format("truetype");
}
Если вы хотите поддерживать почти все браузеры, которые все еще существуют (больше не нужно, IMHO), вы должны добавить еще несколько типов шрифтов, например:
@font-face {
font-family: GraublauWeb;
src: url("webfont.eot"); /* IE9 Compat Modes */
src: url("webfont.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
url("webfont.woff") format("woff"), /* Modern Browsers */
url("webfont.ttf") format("truetype"), /* Safari, Android, iOS */
url("webfont.svg#svgFontName") format("svg"); /* Legacy iOS */
}
Вы можете узнать больше о том, почему все эти типы реализованы и их хаки здесь . Чтобы получить подробное представление о том, какие типы файлов поддерживаются какими браузерами, см .:
@ Поддержка браузера font-face
Поддержка браузера SVG-шрифтов
надеюсь, это поможет