当前位置: 首页 > news >正文

网站建设模板下载免费小企业怎么推广

网站建设模板下载免费,小企业怎么推广,湖北省建设厅质监站网站,自己做抽奖网站违法吗MySQL 8 和 MySQL 5.7 在自增计数上的区别 作者#xff1a;Arunjith Aravindan 本文来源#xff1a;Percona 博客#xff0c;爱可生开源社区翻译。 本文约 900 字#xff0c;预计阅读需要 2 分钟。 Auto-Increment 自增#xff08;Auto-Increment#xff09;计数功能可以…MySQL 8 和 MySQL 5.7 在自增计数上的区别 作者Arunjith Aravindan 本文来源Percona 博客爱可生开源社区翻译。 本文约 900 字预计阅读需要 2 分钟。 Auto-Increment 自增Auto-Increment计数功能可以为主键列生成唯一值这是数据库的一种设计。与 MySQL 5.7 相比MySQL 8 为自增功能做了一项重要的升级。这个升级可以确保自增计数器的最大值在服务器重启后保持不变从而为数据一致性和可靠性提供了更好的保障。在本文中我们将对比 MySQL 5.7 和 MySQL 8 的不同之处并提供实际示例来展示两者的区别。 MySQL 5.7 的自增 在 MySQL 5.7 中自动增计数器的工作机制如下当向包含自增列的表中插入新的一行数据时计数器会自动加 1生成的数值会作为插入行的主键使用。这个计数器值仅保存在内存中在服务器重启后无法持久化。因此如果服务器崩溃或重启计数器可能会重置为一个较低的值。 MySQL 8 的自增持久化 随着 MySQL 8 的发布自增计数器机制有了显著改进。在 MySQL 8 中自增计数器的最大值现在可以在服务器重启后持久化。这意味着即使服务器重启自增计数器也会从上次结束的地方恢复以确保自增主键的值保持连续。 示例对比 让我们用一个简单的例子来说明 MySQL 5.7 和 MySQL 8 在持久自增计数器方面的区别。我们将创建一个名为 users 的表用于存储用户信息。 在 MySQL 5.7 中建表。 mysql select version(); ----------- | version() | ----------- | 5.7.42-46 | -----------mysql CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL ); Query OK, 0 rows affected (0.02 sec) 在表中插入三条数据可以查看到。 mysql INSERT INTO users (username) VALUES (user1); Query OK, 1 row affected (0.00 sec)mysql INSERT INTO users (username) VALUES (user2); Query OK, 1 row affected (0.00 sec)mysql INSERT INTO users (username) VALUES (user3); Query OK, 1 row affected (0.01 sec)mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | | 3 | user3 | -------------- 3 rows in set (0.00 sec) 我们继续删除一条记录并插入一条新记录。 mysql delete from users where id3; Query OK, 1 row affected (0.01 sec)mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | -------------- 2 rows in set (0.00 sec)mysql INSERT INTO users (username) VALUES (user4); Query OK, 1 row affected (0.01 sec) 删除 ID 为 3 的记录和插入新记录后与预期一致我们观察到新记录的 ID 为 4。 mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | | 4 | user4 | -------------- 3 rows in set (0.00 sec) 现在我们从 users 表中删除最后一条记录ID4重启服务器并检查表内容。 mysql delete from users where id4; Query OK, 1 row affected (0.01 sec)mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | -------------- 2 rows in set (0.00 sec)service mysql restartmysql select * from users; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 2 Current database: db1-------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | -------------- 2 rows in set (0.01 sec) 表中只剩下两条记录。我们插入第五条记录判断它是否采用 ID 5还是回退为ID 3。 mysql INSERT INTO users (username) VALUES (user5); Query OK, 1 row affected (0.00 sec)mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | | 3 | user5 | -------------- 3 rows in set (0.00 sec) 因此在 MySQL 5.7 中重启会导致自动增长计数器重置为较低的值从而使新的记录插入时采用 ID 3。 MySQL 8 的解决方案 MySQL 8 解决了在服务器重启时 InnoDB 存储引擎出现的自增计数器丢失的问题。这项增强可以确保自增计数器的值在服务器重启后持久化从而保证主键生成的一致性。 在 MySQL 8 中建表。 mysql select version(); ------------------------- | version() | ------------------------- | 8.0.33-0ubuntu0.22.04.2 | ------------------------- 1 row in set (0.00 sec)mysql CREATE TABLE users (- id INT AUTO_INCREMENT PRIMARY KEY,- username VARCHAR(50) NOT NULL- ); Query OK, 0 rows affected (0.04 sec) 在表中插入三条数据可以查看到。 mysql INSERT INTO users (username) VALUES (user1); Query OK, 1 row affected (0.07 sec)mysql INSERT INTO users (username) VALUES (user2); Query OK, 1 row affected (0.02 sec)mysql INSERT INTO users (username) VALUES (user3); Query OK, 1 row affected (0.01 sec)mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | | 3 | user3 | -------------- 3 rows in set (0.00 sec) 接下来删除一条并插入一条。 mysql delete from users where id3; Query OK, 1 row affected (0.01 sec)mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | -------------- 2 rows in set (0.00 sec)mysql INSERT INTO users (username) VALUES (user4); Query OK, 1 row affected (0.01 sec) 删除 ID 为 3 的记录和插入新记录采用 ID 为 4。 mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | | 4 | user4 | -------------- 3 rows in set (0.00 sec) 删除最后一条记录ID4后重启服务器并查看表。 mysql delete from users where id4; Query OK, 1 row affected (0.01 sec)mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | -------------- 2 rows in set (0.00 sec)service mysql restartmysql select * from users; ERROR 2013 (HY000): Lost connection to MySQL server during query No connection. Trying to reconnect... Connection id: 8 Current database: db1 -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | -------------- 2 rows in set (0.02 sec) 重启后users 表中只保留两条记录。在 MySQL 8 中插入新记录时如预期那样采用 ID5。 mysql INSERT INTO users (username) VALUES (user5); Query OK, 1 row affected (0.01 sec)mysql select * from users; -------------- | id | username | -------------- | 1 | user1 | | 2 | user2 | | 5 | user5 | -------------- 3 rows in set (0.00 sec) 总结 MySQL 8 之前版本中的 InnoDB 存储引擎报告的自增计数器问题可能会导致困惑和数据不一致特别是在服务器重启期间。计数器的值可能丢失导致自动生成的主键值不匹配。MySQL 8 通过保证自增计数器在服务器重启之间持久化来解决这个问题。 通过升级到 MySQL 8开发者可以利用这个功能创建更加坚实的应用程序可以管理不同的故障情况而不影响数据完整性。 https://www.percona.com/blog/auto-increment-counter-persistence-in-mysql-8-comparing-the-evolution-from-mysql-5-7/ 更多技术文章请访问https://opensource.actionsky.com/ 关于 SQLE 爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者支持多场景审核支持标准化上线流程原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 SQLE 获取 类型地址版本库https://github.com/actiontech/sqle文档https://actiontech.github.io/sqle-docs/发布信息https://github.com/actiontech/sqle/releases数据审核插件开发文档https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse
http://www.hkea.cn/news/14365438/

相关文章:

  • 建站需要什么软件我公司网站开发技术优势
  • 如何把自己做的网站连上网wordpress搬家全站 404
  • 宜昌 医院 网站建设西宁建设工程信息网站
  • 好发信息网-网站建设专业网站快速排名优势
  • 哪个网站虚拟主机好加强网站建设与管理的通知
  • 厦门制作公司网站网站制作app
  • 在线设计平台网站大气的企业网站源码
  • wordpress ucenter网页搜索优化
  • 通辽网站建设培训如何查网站有无备案
  • 免备案网站怎么收录咚咚抢网站怎么做的
  • 西部数码怎么上传网站可以做设计兼职的网站有哪些
  • 电子商务网站建设基本组成项目流程管理软件
  • 网站功能建设石家庄做网站最好的公司
  • 宿州网站建设开发公司哪家好国内欣赏电商设计的网站
  • wordpress网站主题插件做合法的海外购网站需要什么手续
  • 灰色词快速排名方法seo优化技术培训
  • 网站优化方案教程网络逻辑设计报告
  • 标准化班组建设网站集思吧网站怎么做问卷
  • 谁的网站模板利于优化国家企业信用信息网
  • 空间设计工作室网站南昌制作网站的公司
  • 知名做网站哪家好做网站的职业叫什么
  • 淄博网站制作定制视觉新网站建设 英文翻译
  • 怎么做短文网站上海营业执照查询系统
  • 开化网站建设音乐app界面设计
  • 私人定制平台网站怎么制作网站商城
  • 天津网站建设招标手机大全网站
  • 个人网站建设的方案做网站付钱方式
  • 建站之星官网 discuz陕西省住房城乡建设厅网站管理中心
  • 搭建网站论坛wap网站乱码
  • 锦州网站建设动态wordpress加载很慢