Dilma писал(а):
из отвечающих переспросили обаDilma писал(а):
не был приведен примерDilma писал(а):
аргументы?Help писал(а):
Не следует использовать индексы для небольших таблиц
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Dilma писал(а): из отвечающих переспросили обаDilma писал(а): не был приведен примерDilma писал(а): аргументы?Help писал(а): Не следует использовать индексы для небольших таблиц |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Уточнение последовало сразу после первого вопроса.После уточнения отвечал только один человек. Имеем: из отвечающих переспросил 1. Вывод: вопрос был не понятен в 100% случаев. Ремарка: кому другим? nesco писал(а): И не будет -- его просто нет,и nesco писал(а): А эта таблица у меня маленькая, всего несколько десятков записей.как понимать? База есть, записи в базе есть, примера нет... nesco цитирует некий help писал(а): Не следует использовать индексы для небольших таблица Windows, круче Linux потому, что на первой странице сайта компании Microsoft написано, что их ОС самая лучшая в мире... Десткий сад ей богу. |
|||
карма: 27 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Dilma писал(а): как понимать? База есть, записи в базе есть, примера нет...Я не хочу это никак пониамть. Один раз про базу ты мне уже написал, когда я привел пример -- с меня хватило. Я совершенно не хочу продолжать эту пустую дискуссию, приводящую в никуда. Dilma писал(а): nesco цитирует некий helpКакой "некий" -- тот самый, который у нас http://hiasm.1gb.ru/wiki.php?view=180 И который никто не оспаривал в его правильности. Справка и дана, чтобы на нее опираться и причем тут тогда Dilma писал(а): Десткий сад ей богуПИСИ. Многие меня тут спрашивали -- "а на кой черт читать всю таблицу", или еще что-то в этом роде. Но это "на кой черт" прекрасно работает уже не первый месяц в непрерывном режиме и по скорости обращения выше чем тот же Interbase или BDE. И нет в этой базе индексации, все работает через rowid. |
|||
карма: 22 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Вот так я решил вопрос с перемещениями строк:
-- Удалил, чтобы глаза не мозолило Админам -- |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
точнее по данному решению следовало сказать это:
Вот так нужно почесывать левой ногой правое ухо. Ремарка к алгоритму: 1) его эффективность нелинейно снижается по мере увеличения размера таблицы и базы в целом 2) надежность алгоритма обеспечивается только при числе одновременных пользователей равными 1. При увеличение количества одновременных пользователей увеличивается вероятность потери данных. |
|||
карма: 27 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Dilma писал(а): его эффективность нелинейно снижается по мере увеличения размера таблицы и базы в целомDilma писал(а): надежность алгоритма обеспечивается только при числе одновременных пользователей равными 1Dilma писал(а): точнее по данному решению следовало сказать это:
Вот так нужно почесывать левой ногой правое ухо. |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Можно переставлять строки еще и так:
select * from ts WHERE rowid < 5
UNION ALL select * from ts WHERE rowid = 6 UNION ALL select * from ts WHERE rowid = 5 UNION ALL select * from ts WHERE rowid > 6 |
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Alexbootch, а какое вверх, и какое вниз?
|
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||||||||||||||||||||||||||||||||
nesco, писал(а): Alexbootch, а какое вверх, и какое вниз?
|
|||||||||||||||||||||||||||||||||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Alexbootch, у меня без ошибок отрабатывает указанные запросы, но в базе все остается на месте. Фактически строки не меняются. Это "теоретически" можно, или ты проверял? Или это, всеже -- запрос на вывод данных в другом порядке?
|
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Это всего лишь вывод данных из таблицы в другом порядке следования строк.
|
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Alexbootch, спасибо, учту. Хочу спросить, а переменные можно оформлять в SQLite? Или как обратиться к полям конкретной строки другой таблицы из запроса UPDATE table SET col1=value1, col2=value2 WHERE rowid =%1, с WHERE понятно -- это условие для моей таблицы, а вот значение valueXX должно браться из другой таблицы со своими значениями rowid? Если бы были переменные, то значения valueXX можно получить перед запросом UPDATE.
|
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco, писал(а): Хочу спросить, а переменные можно оформлять в SQLite?Как понять "оформлять"? Имеешь ввиду получить нужные значения перед выполнением модификации данных? |
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Alexbootch, именно это. Ну например: получить valueXX перед выполнением UPDATE из другой таблицы (можно и из этой же, но из другой строки).
|
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Можно попробовать так:
UPDATE Наименование SET Вид = (SELECT Название FROM Список ) WHERE rowid = 1
либо так: UPDATE Наименование SET Вид = (SELECT Название FROM Список WHERE rowid = 3 ) WHERE rowid = 2 |
|||
карма: 0 |
|