Konst, а ты первую страницу топика открывал? Не поленись, открой и посмотри, какая версия текущая.
[size=-2]------ Добавлено в 00:04
Народ! Как правильно создать индексацию по столбцу, по которому будет происходить сортировка, меня волнует вопрос об одинаковых значениях в полях столбца, повлияют ли они на индексацию. Я еще заметмл, что можно создать восходящую и нисходящую индексацию, каким запросом это делается? Вопрос про приватное редактирование, несколькими постами выше, тоже остался без ответа.
Этот топик читают: Гость
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Как правильно создать индексацию по столбцу, по которому будет происходить сортировка, меня волнует вопрос об одинаковых значениях в полях столбца, повлияют ли они на индексациюзависит от типа индекса. Primary key не даст сделать в колонке два одинаковых значения. ограничение доступа к БД во время критических действий обычно осущевстляется с помощью транзакций. В SQLite по идее запросы в рамках одной транзакции помещаются между BEGIN и COMMIT |
|||
карма: 27 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco, писал(а): Вопрос про приватное редактирование, несколькими постами выше, тоже остался без ответа.Про какое такое приватное редактирование? |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Alexbootch, да вот про это
nesco писал(а): Еще есть маленький вопрос -- а есть ли запросы, позволяющие только одному пользователю работать с базой, например: я посылаю такой запрос о захвате базы на редактирование, а другие, кто попытается открыть после меня, получат фигу, и так до тех пор, пока не будет послан запрос об окончании редактирования?Ну может я не так выразился, назовем это "монопольным доступом". Те, мне нужно получить монопольный доступ к базе. |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
D. Richard Hipp писал(а): Since SQLite reads and writes an ordinary disk file, the only access permissions that can be applied are the normal file access permissions of the underlying operating system. The GRANT and REVOKE commands commonly found on client/server RDBMSes are not implemented because they would be meaningless for an embedded database engine. |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Dilma писал(а): Primary key не даст сделать в колонке два одинаковых значенияНет, столбец не Primary key -- обычный, но нужна быстрая сортировка именно по этому сттолбцу. Dilma писал(а): В SQLite по идее запросы в рамках одной транзакции помещаются между BEGIN и COMMITВроде на сайте производителя написано, что транзакции в SQLite включаются автоматически SQLite писал(а): Any command that changes the database (basically, any SQL command other than SELECT) will automatically start a transaction if one is not already in effect. Automatically started transactions are committed at the conclusion of the command[size=-2]------ Добавлено в 00:33 Alexbootch, а что по индексации, чего-нибудь посоветуешь. |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Кстати, в SQLite есть так называемые режимы блокироки, но думаю тебе это не подойдет для "монопольного доступа"
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Нет, столбец не Primary key -- обычный, но нужна быстрая сортировка именно по этому сттолбцу.любой индекс - это сортированные в некотором порядке данные. Primary index к тому же исключает вероятность дублирования. nesco писал(а): Вроде на сайте производителя написано, что транзакции в SQLite включаются автоматическии не закрываются никогда видимо? [size=-2]------ Добавлено в 00:41 пунтк 7.0 по приведенной выше ссылке |
|||
карма: 27 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Alexbootch, скорее вот это то, что нужно
SQLite писал(а): After a BEGIN EXCLUSIVE, you are guaranteed that no other thread or process will be able to read or write the database until the transaction is complete |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco, писал(а): Alexbootch, а что по индексации, чего-нибудь посоветуешь.
nesco, а индексацию по PRIMARY KEY хочешь проводить или по другому какому-нибудь полю таблицы? |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Dilma писал(а): и не закрываются никогда видимо?Ну да, до закрытия базы SQLite писал(а): In autocommit mode, all changes to the database are committed as soon as all operations associated with the current database connection complete[size=-2]------ Добавлено в 00:57 Alexbootch писал(а): nesco, а индексацию по PRIMARY KEY хочешь проводить или по другому какому-нибудь полю таблицы?nesco писал(а): Нет, столбец не Primary key -- обычный, но нужна быстрая сортировка именно по этому сттолбцуВ этом столбце обязательно возможны одинаковые значения, которые и надо быстро отобрать и вывести в таблицу, но уже со всеми параметрами, и чем быстрее, тем лучше. |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
BEGIN EXCLUSIVE это конечно не монопольный доступ, да и работать будет только в течении одной транзакции
[size=-2]------ Добавлено в 01:17 nesco, писал(а): В этом столбце обязательно возможны одинаковые значения, которые и надо быстро отобрать и вывести в таблицу, но уже со всеми параметрами, и чем быстрее, тем лучше.Главное, что бы одинаковых значений не было слишком много, т.е. не рекомендуется создавать индексы по столбцам, число различных значений которых невелико. В указанном случае запрос вызывает непрерывный поток обращений от таблицы к индексу и наоборот возвращая при этом большой объем данных, серверу же базы данных придется постоянно читать сначала данные из индекса, затем соответствующую строку из таблицы и т. д [size=-2]------ Добавлено в 01:33 Konst, писал(а): Для работы с Hiasm новой версии SQLite достаточно замены DLL Да. |
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Alexbootch писал(а): BEGIN EXCLUSIVE это конечно не монопольный доступ, да и работать будет только в течении одной транзакцииНо с учетом тoго, что SQLite писал(а): In autocommit mode, all changes to the database are committed as soon as all operations associated with the current database connection completeAlexbootch писал(а): Главное, что бы одинаковых значений не было слишком многоЗначит, всеже можно. Ладно, проверим на реальной базе. Индекс я создал, только концепция не совсем понятна была с одинаковыми значениями. А что скажешь про индексацию в возрастающем/убывающем порядке, как такую индексацию сделать? |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco, кстати учти, что использование индекса замедляет операции модификации DML (такие как INSERT и DELETE).
|
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Alexbootch, это я уже прочитать успел, но думаю времени на запись одной строки хватит, утром проверю на большом потоке, будет срыв или нет.
|
|||
карма: 22 |
|