|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
про индексы не забудьте
их на ваше поле "время" само то повесить Я за здоровый экстрим! Спасибо за "спасибо") |
#17
|
||||
|
||||
Цитата:
в косоли show index from t124; выдает 2 строки, т.к. индексы есть, я так понимаю. Код:
+------+-------------+------------+----------------+-------------+-----------+-------------+----------+--------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Comment | +------+-------------+------------+----------------+-------------+-----------+-------------+----------+--------+---------+ | t124 | 0 | PRIMARY | 1 | Time | A | NULL | NULL | NULL | | | t124 | 0 | PRIMARY | 2 | Sensor | A | 25200 | NULL | NULL | | +------+-------------+------------+----------------+-------------+-----------+-------------+----------+--------+---------+ Последний раз редактировалось alexusankov, 20.06.2013 в 11:57. |
#18
|
||||
|
||||
конечно можно, в поиске все есть
например, с помощью, dbforge studio, которым я пользуюсь, это можно узнать (и добавить) в пару кликов вот еще занятная статья с хабра http://habrahabr.ru/post/70640/ не видел вашего редактирования Для PRIMARY индекс создается автоматом, т.е. да у вас он есть да что за диалог такой наоборот) да, похоже индексы отпадают, смотрите в сторону ухода от большого количества таблиц Я за здоровый экстрим! Спасибо за "спасибо") Последний раз редактировалось Mrak, 20.06.2013 в 12:03. |
Этот пользователь сказал Спасибо Mrak за это полезное сообщение: | ||
alexusankov (20.06.2013)
|
#19
|
||||
|
||||
Цитата:
Код:
QMySQL.SQL.Text := 'SELECT AV FROM t' + IntToStr(index) + ' WHERE (Time LIKE ' + #39 + GetValues('Data') + ' ' + GetValues('Hour') + '%' + #39 + ' ) AND (Sen = ' + IntToStr(i) + ')'; Код:
a := GetValues('Hour'); // текущий час b := GetValues('Hour2'); // текущий час + 1 QMySQL.SQL.Text := 'SELECT AV FROM t' + IntToStr(index) + ' WHERE (Time > ' + #39 + GetValues('Data') + ' ' + a + #39 + ' ) AND (Time < ' + #39 + GetValues('Data') + ' ' + b + #39 + ' ) AND (Sen = ' + IntToStr(i) + ')'; время всего танца с бубном, и плясок вокруг базы данных, записи логов консоли итп, всей программы, сократилось, с 12 минут до 31 секунды!! Я в восхищении! Выходит - LIKE - большое зло? |
#20
|
||||
|
||||
Цитата:
Я за здоровый экстрим! Спасибо за "спасибо") |
Этот пользователь сказал Спасибо Mrak за это полезное сообщение: | ||
alexusankov (20.06.2013)
|
#21
|
||||
|
||||
Цитата:
|
#22
|
||||
|
||||
Вам спасибо, за подтверждение теории на практике
Я за здоровый экстрим! Спасибо за "спасибо") |
#23
|
||||
|
||||
Нет like не зло, а очень хорошая штука. Но использовать его надо с пониманием что и как он делает.
Если вы напишите [a] like 'строка%' то будет использован индекс по полю [a], правда такой индекс должен быть создан. А вот если так будет [a] like '%строка%' то тут уже применить индекс невозможно и сответственно тормоза будут приличные. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
alexusankov (20.06.2013)
|
#24
|
||||
|
||||
Цитата:
Да, в документации написано "MySQL применяет индексы также для сравнений LIKE, если аргумент в выражении LIKE представляет собой постоянную строку, не начинающуюся с символа-шаблона" Но... Я за здоровый экстрим! Спасибо за "спасибо") |
#25
|
||||
|
||||
Товарищи, а такой еще вопрос, сходной тематики :
Завели базу на сервере, СУБД Microsoft SQL. Планируется в только что созданную таблицу, которую мы обсуждали, в год класть примерно 350 000 записей... У пользователей есть форма, в самодельной программе, которая делает SELECT и показывает записи за один день... Будет ли это тормозить, при 100 тысячах записей? При трехсот? Есть ли рекомендуемый лимит количества записей в таблице для MS SQL 2005? |
#26
|
||||
|
||||
лимита для кол-ва записей в таблице нет.
при правильной организации таблицы и индексов - тормозов не будет Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 20.06.2013 в 15:35. |
#27
|
||||
|
||||
Цитата:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#28
|
||||
|
||||
Ну лимит надо ставить уже хотя-бы потому что просматривать 100000 записей никому не надо, всегда существует какой-то критерий отбора.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |