Список форумов Шадринский форум -> Программирование -> Общие вопросы программирования -> Исккусство
Начать новую тему   Ответить на тему   вывод темы на печать

Исккусство

Автор
Сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2006.04.02 15:36.52
Ответить с цитатой
а сейчас еще SQLite начала откусывать кусок
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
vladislav
Запомнил кнопки...



Зарегистрирован: 04.02.2005
Сообщения: 147


Статус: Offline
СообщениеДобавлено: 2006.04.02 18:44.26
Ответить с цитатой
Пожалуйста.


http://iskondopoga.narod.ru/sience/files/2004/MSQLvisMySQL2.htm

или

http://mksoft.km.ru/my/pda/channels/geturl.php?url=http://citforum.ru//database/articles/msmysql/


На счет коннекта-дисконенекта я опять в недоумении. Повторяю соединение идет по ODBC и нет здесь проблем никаких. И my sql по ODBC соединеяется. Я конечно о Windows говорю. У Oracle, правда есть какие-то клиентсикие навороты, но его в web-приложениях повидимому никто не использует.
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2006.04.02 18:55.57
Ответить с цитатой
vladislav
почему в недоумении? клиент запросил страничку - веб-сторона подключилась к серверу, цапнула данные, вывела и отключилась.
далее. в небольших проектах ODBC не пользуют, зачем оно надо - такие накладные расходы? мало того, даже в ГУЙных приложениях пытаются использовать чтолибо более родное для сервера БД.

ps: а разница цен убивает... прикинул я такой проект как "гостевая книга", которая просит MSSQL сервер этак за 10 тысяч долларов

pps: еще раз не намек, а вопрос - зачем использовать вещи для целей не предназначенных тому?
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
vladislav
Запомнил кнопки...



Зарегистрирован: 04.02.2005
Сообщения: 147


Статус: Offline
СообщениеДобавлено: 2006.04.02 19:19.47
Ответить с цитатой
Если запрос выполняется на MS SQL раз в 10 быстрее, то в конце концов наплевать, что соединение в полтора раза медленней (в чем я сомневаюсь).
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2006.04.02 19:32.30
Ответить с цитатой
ммм... не знаю не знаю... на прошлой неделе обрабатывал БД в которой было полтора миллиона строк. около пары-тройки тысяч запросов выполняется за пару-две секунд. на Мускл.
Мне большего не надо.
Посмотрел статьи, где аж 72 тысячи записи было и как-то засомневался в-приницпе в компетентности "тестеров" (все измерения можно вообще в погрешность выкинуть). Если им нужны запросы "очень быстрые но простые" - пусть берут mysql 3.x, если что-то посерьезней 4.1.х (а у них 4.0 был - ни то ни сё).

ну и вопрос стоимости почему-то обходится старательно Embarassed
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2006.04.02 19:43.34
Ответить с цитатой
Не будем гадать, когда можно проверить.
  function getmicrotime()
    { list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); }

  $time_start = getmicrotime();
  mysql_connect("localhost:/var/lib/mysql/mysql.sock", "root", "");
  echo getmicrotime()-$time_start."<br>";
  $time_start = getmicrotime();
  mysql_close();
  echo getmicrotime()-$time_start;


Несколько примеров результатов:

0.017324924468994
0.00010395050048828

0.032409906387329
0.00010395050048828

0.033370971679688
7.9870223999023E-05

0.019144058227539
0.0001070499420166

Железо и прогр.обеспечение - самое простое, даже старенькое: машина - P3-866, ось - альтлинукс мастер 2.4, mysql 4.0.24

Теперь ждем тестов коннекта-дисконнекта к MSSQL
Посмотреть профиль Отправить личное сообщение
vladislav
Запомнил кнопки...



Зарегистрирован: 04.02.2005
Сообщения: 147


Статус: Offline
СообщениеДобавлено: 2006.04.02 19:48.03
Ответить с цитатой
Подожди, я в начале в твоем тексте разберусь. Не думаешь ли ты, что я поверю результатам не разобравшись.
Посмотреть профиль Отправить личное сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2006.04.02 19:55.15
Ответить с цитатой
Еще немножко примеров
SELECT SQL_CALC_FOUND_ROWS 
k.id as id,
concat(DATE_FORMAT(k.AGREEMENT_CONCLUSION_DATE, '%y' ) , '.', f.num, '.') as AGREEMENT_PRENUM,
concat(DATE_FORMAT(k.AGREEMENT_CONCLUSION_DATE, '%y' ) , '.', f.num, '.',k.AGREEMENT_NUM) as AGREEMENT_NUM_REAL,
AGREEMENT_NUM as AGREEMENT_NUM,
dkt.name as dktname,
AGREEMENT_CONCLUSION_DATE as AGREEMENT_CONCLUSION_DATE,
AGREEMENT_INDATE as AGREEMENT_INDATE,
concat(cust.surname,' ',cust.firname,' ',cust.patname) as customer,
concat(stud.surname,' ',stud.firname,' ',stud.patname) as student,
f.name as fname,
qualif.name as qname,
PRICE as PRICE,
sum(pay.payment)/(count(*)/count(distinct pay.id)) as s,
convert(sum(pay.payment)/(count(*)/count(distinct pay.id))/price*100,unsigned) as ss,
PRICE2 as PRICE2,
sum(pay2.payment)/(count(*)/count(distinct pay2.id)) as s2,
convert(sum(pay2.payment)/(count(*)/count(distinct pay2.id))/price2*100,unsigned) as ss2,
PRICE3 as PRICE3,
sum(pay3.payment)/(count(*)/count(distinct pay3.id)) as s3,
convert(sum(pay3.payment)/(count(*)/count(distinct pay3.id))/price3*100,unsigned) as ss3,
PRICE4 as PRICE4,
sum(pay4.payment)/(count(*)/count(distinct pay4.id)) as s4,
convert(sum(pay4.payment)/(count(*)/count(distinct pay4.id))/price4*100,unsigned) as ss4,
PRICE5 as PRICE5,
sum(pay5.payment)/(count(*)/count(distinct pay5.id)) as s5,
convert(sum(pay5.payment)/(count(*)/count(distinct pay5.id))/price5*100,unsigned) as ss5 

    FROM 
 dtpeople cust,
 dicorgunit f,
 dtpeople stud,
 dicqualif qualif,
 dickontracttype dkt,
 kontracts k
 left join
 payments pay
 on pay.tokontract=k.id and pay.kontractYear=1
 left join
 payments pay2
 on pay2.tokontract=k.id and pay2.kontractYear=2
 left join
 payments pay3
 on pay3.tokontract=k.id and pay3.kontractYear=3
 left join
 payments pay4
 on pay4.tokontract=k.id and pay4.kontractYear=4
 left join
 payments pay5
 on pay5.tokontract=k.id and pay5.kontractYear=5
 
      WHERE 
cust.id=toPeopleCust and
 stud.id=toPeopleStud and toDicQualif=qualif.id and qualif.toorgunit=f.id
 and AGREEMENT_TYPE=dkt.id
 and ((concat(stud.surname,' ',stud.firname,' ',stud.patname)) like "с%") 
      GROUP BY k.id 
ORDER BY AGREEMENT_PRENUM ASC, AGREEMENT_NUM ASC 



Записей в таблицах:
dtpeople - 7534
dicorgunit - 13
dicqualif - 91
dickontracttype - 4
kontracts - 3748
payments - 5407

Записей в результате - 361

Время работы 0.16-0.18 секунды на том-же железе и прогр.обесп.

Это конечно не 100000 записей, зато куча отношений м/ду таблицами
Посмотреть профиль Отправить личное сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2006.04.02 19:59.28
Ответить с цитатой
Кстати, по последнему примеру - время с учетом коннекта-дисконнекта.

Надо глянуть на работе, там на сервере вообще наверное 10 в минус пятой.

Если с учетом php-обработки и формирования ответа клиенту, то мой отладчик на этом запросе дает:

Время выполнения: 0.6948390007019 секунд
Объем результата: 172.919 килобайт
Посмотреть профиль Отправить личное сообщение
vladislav
Запомнил кнопки...



Зарегистрирован: 04.02.2005
Сообщения: 147


Статус: Offline
СообщениеДобавлено: 2006.04.02 20:13.58
Ответить с цитатой
Товарища задело за живое.
Ладно, ждите ответа. Насчет коннекта, придется проверять на Си. Но разумеется это не будет настоящей проверкой. Нужен тест. Поэтому придется мне еще у себя и My SQL устанавливать. Э-эх, потешимся! Причем заметьте, у меня стоит SQL Server 2005, этого еще никто никогда не делал. Восславим же величие Microsoft.
Посмотреть профиль Отправить личное сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2006.04.02 20:23.24
Ответить с цитатой
А еще лучше организовать сетевой коннект к двум машинам - на одной mssql на виндовс, на другой - mysql на линуксе. Вторую машинку могу предоставить на работе. Тогда каждый соптимизирует свою ось и sql-сервер по максимуму. Да сгинет подлый макрософт.
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2006.04.02 20:41.48
Ответить с цитатой
да не вопрос. завтра я на обеде свои логи загоню на сервак, там стоит и мускл и мсскл (девелоперская версия, она дешевая, если че Wink)

ps: и никакого ODBC

pps: хотя почему бы и нет... 4 теста забацать легко.
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
vladislav
Запомнил кнопки...



Зарегистрирован: 04.02.2005
Сообщения: 147


Статус: Offline
СообщениеДобавлено: 2006.04.02 20:45.04
Ответить с цитатой
Andy Ice, как ты с SQl Server обычно содиняешся по сети?
У меня такое ощущение, что мы друг друга не понимаем.
Посмотреть профиль Отправить личное сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2006.04.02 20:49.02
Ответить с цитатой
MS SQL Client Tools, если под виндовс
FreeTDS, если под юниксами
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2006.04.02 20:49.23
Ответить с цитатой
MSSQL: из Delphi - ADO, из C# - ADO.NET, из PHP - обычная mssql-ная библиотека.
MySQL: из Delphi никак, не надо было, из C# - враппер с сайта, но тоже еще маловато пробывал, просто протестил возможность, из PHP - обычная библиотека из поставки.

ODBC пробывал один раз из РНР, когда нужно было быстро достать jpg-фотки из MSSQL-блоба, ибо не нашел тогда, как это делать используя mssql_* функции, а потом и не надо стало
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
vladislav
Запомнил кнопки...



Зарегистрирован: 04.02.2005
Сообщения: 147


Статус: Offline
СообщениеДобавлено: 2006.04.02 20:51.40
Ответить с цитатой
ADO и ADO.NET это надстройки над ODBC.
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2006.04.02 20:52.50
Ответить с цитатой
вот потому и не пользуемся для веба Podmigivanie
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
vladislav
Запомнил кнопки...



Зарегистрирован: 04.02.2005
Сообщения: 147


Статус: Offline
СообщениеДобавлено: 2006.04.02 20:54.14
Ответить с цитатой
Ладно, заметано. начну тестирование MS SQL и My SQL. если что-то получится, напишу статью.
Посмотреть профиль Отправить личное сообщение
vladislav
Запомнил кнопки...



Зарегистрирован: 04.02.2005
Сообщения: 147


Статус: Offline
СообщениеДобавлено: 2006.04.03 15:36.43
Ответить с цитатой
Сегодня записал my sql. Начну тестировать. В начале на локальной машине, затем в сети. Люблю, чтобы все было доказательно.
Посмотреть профиль Отправить личное сообщение
Страница 2 из 2
Начать новую тему   Ответить на тему   вывод темы на печать
На страницу Пред.  1, 2
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> Общие вопросы программирования -> Исккусство

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы