zed писал(а):Вот скрипт, которым я загонял данные в базу:
zed писал(а):Пустую базу прикрепил.
Да я вообще-то просил тебя выгрузить в скрипт метаданные базы. Хотя сойдёт и так.
Пасиб.
Модератор: Tolik
zed писал(а):Вот скрипт, которым я загонял данные в базу:
zed писал(а):Пустую базу прикрепил.
svp писал(а):Да я вообще-то просил тебя выгрузить в скрипт метаданные базы
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Янв 12 2009 г., 20:54
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4
--
-- БД: `TailBase`
--
-- --------------------------------------------------------
--
-- Структура таблицы `main`
--
CREATE TABLE `main` (
`Ver` int(11) NOT NULL,
`X` int(11) NOT NULL,
`Y` int(11) NOT NULL,
`Z` int(11) NOT NULL,
`MapT` int(11) NOT NULL,
`Data` mediumblob,
KEY `X` (`X`),
KEY `Y` (`Y`),
KEY `Z` (`Z`),
KEY `Ver` (`Ver`),
KEY `MapT` (`MapT`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Дамп данных таблицы `main`
--
zed писал(а):Запустить что ли 20 страничек в браузере и поставить на автообновление?
<table>
<tr>
<td><img src="SELECT такая то картинка FROM от_сюда WHERE координата_Х="Хз" AND координата_Y="Ху""></td>
<td><img src="SELECT такая то картинка FROM от_сюда WHERE координата_Х="Хз+1" AND координата_Y="Ху""></td>
<td><img src="SELECT такая то картинка FROM от_сюда WHERE координата_Х="Хз+2" AND координата_Y="Ху""></td>
<td><img src="SELECT такая то картинка FROM от_сюда WHERE координата_Х="Хз+3" AND координата_Y="Ху""></td>
<td><img src="SELECT такая то картинка FROM от_сюда WHERE координата_Х="Хз+4" AND координата_Y="Ху""></td>
</tr>
и в цикле менять "координата_Y"
<body>
<?php $start = microtime(1);
$t_start = date("m.d.Y, H:i:s");
echo "Start time: ".$t_start."<br>";?>
<table width="1280" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="256"><img src="http://localhost/get.php?x=10&y=0&z=10" alt="img" width="256" height="256" /></td>
<td height="256"><img src="http://localhost/get.php?x=1&y=0&z=10" alt="img" width="256" height="256" /></td>
<td height="256"><img src="http://localhost/get.php?x=2&y=0&z=10" alt="img" width="256" height="256" /></td>
<td height="256"><img src="http://localhost/get.php?x=3&y=0&z=10" alt="img" width="256" height="256" /></td>
<td height="256"><img src="http://localhost/get.php?x=4&y=0&z=10" alt="img" width="256" height="256" /></td>
...
</tr>
</table>
<br>
<?php $end = microtime(1);
$time=$end-$start;
$t_end = date("m.d.Y, H:i:s");
echo "Total time: ".$time."<br>";
echo "Start time: ".$t_start."<br>";
echo "End time: ".$t_end."<br>";?>
</body>
vdemidov писал(а):Замерять нужно в браузере джаваскриптом.
zed писал(а):Поставил эксперемент с MySQL:
- создал базу с индексами по x, y, zoom, MapType, TileVer (индексы отдельные, без primary ключа);
- заполнил базу тайлом 21,5 kB. Тайл сохранял в поле MediumBlob, а x, y, zoom, MapType, TileVer для каждой записи генерировал случайным образом (для каждой переменной было созадано ограничение на max значение: для zoom, MapType, TileVer - 0..24; для x, y - 0..16 000 000);
Получил базу в ~155 тыс. записей, размером 3.18ГБ, с индексом 9МБ. Скорость заполнения базы составила 300-350 тайлов/сек (тайл загружался в память перед началом записи).
Вот. А потом выполнил запрос на тайл по x, y, zoom, MapType, TileVer - время запроса составило: 0.0018 сек. (если тайл небыл найден в базе) или 0.0033 сек. (если тайл находился в базе). А полная операция получения тайла (соединение с базой, поиск и передача данных в браузер) длилась от 0.017 до 0.047 сек.
Всё это делал через php и MySQL из пакета Denver. (Если всё делать из проги, а не из скриптов/браузеров и проч. наверное должно быть быстрее?)
Результат, по-моему, не плохой. Будет время, попробую наполнить базу гигов до 40-60, посмотреть что выйдет
Надо разобраться с Беркли + php, глянуть какое там будет быстродействие. Если у кого есть скрипты, поделИтесь?
P.S. Эх, как-то сразу не сообразил сделать выборку тайла скриптом из существующего кэша SAS, а то эксперемент и сравнить-то не с чем...
rokki писал(а):Зачем хранить в базе саму картинку? ))))))))))))
rokki писал(а):Вам чем мешает кеш в файлах? Что его таскать нельзя на харде чтоли? Вы часто таскаете кеш? ))))
rokki писал(а):Не нужен кеш в одном файле!
rokki писал(а):И все операции по постороению карт для отображения других уровней производить из индекса а не с диска... а также операции по пополнению кеша, обмена им и тд...
rokki писал(а):Проблема реальная - это чтение тайлов с диска для построения карты тайлов высокого уровня. Вот это тормоз и гимор )
Сейчас этот форум просматривают: AlekseyMyrzin, Google [Bot] и гости: 8