Что лучше использовать и как обойти ограничения

210
03 июля 2018, 23:50

Есть Веб приложение (ASP NET MVC), которое досталось на поддержку. Часть по аутентификации использует подключение к базе MS SQL Server Expres.
Основная часть приложения, использует БД My SQL Commynity. Конечно чтобы не тратить деньги никто в организации не хочет вкладываться в нормальную версию MS SQL Server. вопрос (по части MY SQL), есть ли ограничение в MySQL на идентификаторы в базе данных?
Поясню, есть таблица, столбцы int(11) identity 1,1, varchar(255)......
Первый столбец автоинкремент. С ним вопрос, у него длина 2147483647, как только достигнут значения в БД такого количества, что произойдет с данными? вставка в БД будет невозможна? или будут перезаписываться? как в данном случае ведет себя MySQL ?
Решения проблемы: использовать BIGINT или UNSIGNED BIGINT, но они тоже конечны ?
Или есть другие способы решения?

Если перевести все таблицы в MSSQL Server Express, как лучше обойти ограничение в 10Гб ?

Answer 1

Решения проблемы: использовать BIGINT или UNSIGNED BIGINT, но они тоже конечны ?

Возьмите калькулятор, посчитайте с какой скоростью вам надо писать данные, чтобы хотя бы за нереальные для срока жизни приложения 50 лет вы их исчерпали.

select pow(2,63)/50/365.25/24/60/60;
5845420460.906264

Почти 6 миллиардов строк в секунду? У вас серьёзно есть столько данных? А где вы их хранить собираетесь?

у него длина 2147483647, как только достигнут значения в БД такого количества, что произойдет с данными?

Если говорить об AUTO_INCREMENT - новые строки будет невозможно вставить из-за нарушения ограничения первичного ключа, т.к. AUTO_INCREMENT требует быть уникальным.

Интересное исключение - если вы используете insert on duplicate key update - вы получите нарушение первичного ключа при попытке insert и потому будет запускаться update последней строки. Хотя в 8.0 может и изменили поведение. На 5.6 последний раз проверял.

Кстати, у MS SQL ровно те же самые лимиты на генерацию последовательностей: identity ограничен размером типа данных. Int и bigint ровно такие же как в mysql.

READ ALSO
Распарсить svg файлы

Распарсить svg файлы

Есть несколько svg файлов следующего формата

257
Expected response code 250 but got code “554”, with message “554 5.7.1 [1] Message rejected under suspicion of SPAM; https://ya.cc/1IrBc.. ”

Expected response code 250 but got code “554”, with message “554 5.7.1 [1] Message rejected under suspicion of SPAM; https://ya.cc/1IrBc.. ”

Столкнулась с такой проблемой, при регистрации на сайте через емайл example@mailru выходит ошибка:

331
Как вывести родительский атрибут?

Как вывести родительский атрибут?

Как можно вывести родительский атрибут и атрибут самой страницы? Например: Главная - КаталогНа определённой странице?

219
Как правильно сделать get запрос для instagram?

Как правильно сделать get запрос для instagram?

Когда авторизировался в веб версии Instagram и нажал на кнопку количества друзей, то отправился get-запрос:

253