Bitcoin Forum

Local => Кодеры => Topic started by: imhoneer on June 23, 2017, 06:03:22 PM



Title: Вопрос по базам данным
Post by: imhoneer on June 23, 2017, 06:03:22 PM
Господа хотелось бы уточнить такой момент, у нас есть база данных состоящая из одной таблицы вида:

id   nominal                                                 nomer
1        1          07E547D9586F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64
2        1          05678tyuigy,mnb7654564545676FB7D9586F6A73F7D0C8D788A309D785436BBB64
3        1          07E547D9586F6A73F73FBAC06951218FB7D309D785436BBB644567809745678768
4        5          4567899586F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64
5        5          098iuyjhg9586F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64
6        5          45yuk586F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64
7        10          3456098kjhgbvc54328765435ED76951218FB7D0C8D788A309D785436BBB64
8        10         fgh3456987sd345673FBAC0435ED76951218FB7D0C8D788A309D785436BBB64
9        10          2345689765908765456FBAC0435ED76951218FB7D0C8D788A309D785436BBB64
10       25          123456786543544545677540435ED76951218FB7D0C8D788A309D785436BBB64
11       25          3456u43566543456u654rwertytr4543ty543456yt340C8D788A309D785436BBB64
12       25          345685uyt3456uytry4uuytAC0435ED76951218FB7D0C8D788A309D785436BBB64
13       50          2134556t434567573F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64
14       50          567898764tyu6546789iuytt565iuyt56iuyty465765467iD0C8D788A309D785436BBB64
15       50          4567wtrey67899546657685635ED76951218FB7D0C8D788A309D785436BBB64
16       100          0657895456456766AC0435ED76951218FB7D0C8D788A309D785436BBB64
17       100          98iujh6F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64
18       100          3456kjhgfuygft3F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64


Такая таблица будет примерно содержать около 1-2 миллиардов строк.

Есть потребность убрать столбец id и привести её к виду:

                                             nomer                                   nominal                                                
    07E547D9586F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64                      1
    05678tyuigy,mnb7654564545676FB7D9586F6A73F7D0C8D788A309D785436BBB                       1
    07E547D9586F6A73F73FBAC06951218FB7D309D785436BBB6445678097456787                       1
    4567899586F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB646                       5
    098iuyjhg9586F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB8                       5
    45yuk586F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64678                       5
    3456098kjhgbvc54328765435ED76951218FB7D0C8D788A309D785436BBB64ert                       10
    fgh3456987sd345673FBAC0435ED76951218FB7D0C8D788A309D785436BBB647                       10
    2345689765908765456FBAC0435ED76951218FB7D0C8D788A309D785436BBB6                        10
    123456786543544545677540435ED76951218FB7D0C8D788A309D785436BBB6                        25
    3456u43566543456u654rwertytr4543ty543456yt340C8D788A309D785436BBB                        25
    345685uyt3456uytry4uuytAC0435ED76951218FB7D0C8D788A309D785436BBB                        25
    2134556t434567573F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB                        50
    567898764tyu6546789iuytt565iuyt56iuyty465765467iD0C8D788A309D785436                        50
    4567wtrey67899546657685635ED76951218FB7D0C8D788A309D785436BBB64                         50
    0657895456456766AC0435ED76951218FB7D0C8D788A309D785436BBB642456                       100
    98iujh6F6A73F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB644768                       100
    456kjhgfuygft3F73FBAC0435ED76951218FB7D0C8D788A309D785436BBB64754                      100


Столбец nomer содержит уникальные значения, это хеши (как адреса у биткоина) одинаковой длины. Особенность в том, что мы не делаем вставок в таблицу, а практически постоянно производим поиск по значению в столбце nomer и меняем его другим значением.

Так вот вопрос, не повлияет ли это на скорость работы базы данных, а также возможность хеширования значений всей таблицы.

Я знаю, что есть разные типы баз данных поэтому интересует больше возможность данного исполнения.

 




Title: Re: Вопрос по базам данным
Post by: A-Bolt on June 24, 2017, 06:15:21 PM
То что у вас в итоге получилось, называется key-value storage.
Key-value storage производительнее (для тех задач, для которых они подходят) чем SQL БД.
Копайте в этом направлении.
Конкретную подходящую под ваши задачи реализацию key-value storage не подскажу - не специалист.
 


Title: Re: Вопрос по базам данным
Post by: imhoneer on June 24, 2017, 07:34:26 PM
То что у вас в итоге получилось, называется key-value storage.
Key-value storage производительнее (для тех задач, для которых они подходят) чем SQL БД.
Копайте в этом направлении.
Конкретную подходящую под ваши задачи реализацию key-value storage не подскажу - не специалист.
 

Спасибо за подсказку, всё говорит, что такое вполне реализуемо в Berkeley DB и довольно быстро и просто.


Title: Re: Вопрос по базам данным
Post by: yzoz on June 26, 2017, 02:09:13 PM
Вот здесь можно удобно повыбирать
https://db-engines.com/en/ranking


Title: Re: Вопрос по базам данным
Post by: imhoneer on June 26, 2017, 02:15:00 PM
Вот здесь можно удобно повыбирать
https://db-engines.com/en/ranking

Спасибо за ссылку, узнал много новых баз данных, хотя разобраться в них может только специалист.


Title: Re: Вопрос по базам данным
Post by: yzoz on June 26, 2017, 02:40:23 PM
Вот здесь можно удобно повыбирать
https://db-engines.com/en/ranking
Спасибо за ссылку, узнал много новых баз данных, хотя разобраться в них может только специалист.

На самом деле, все эти новые NoSQL базы очень даже дружественные! Я осилил MongoDB и InfluxDB весьма быстро. До этого был только MySQL. У них такой синтаксис запросов, что будто бы с человеком общаешься (:
Я бы порекомендовал попробовать http://www.aerospike.com/ - вроде хвалят. Самому с ключ-значение пока не приходилось работать.. Но хочу :)


Title: Re: Вопрос по базам данным
Post by: imhoneer on June 26, 2017, 05:56:43 PM
На самом деле, все эти новые NoSQL базы очень даже дружественные! Я осилил MongoDB и InfluxDB весьма быстро. До этого был только MySQL. У них такой синтаксис запросов, что будто бы с человеком общаешься (:
Я бы порекомендовал попробовать http://www.aerospike.com/ - вроде хвалят. Самому с ключ-значение пока не приходилось работать.. Но хочу :)

Спасибо, буду иметь в виду эту базу данных.