首页
学习
活动
专区
圈层
工具
发布

【说站】mysql自增值保存的位置

mysql自增值保存的位置 在我们使用mysql时,会遇到自增主键。那么不同的引擎有着不一样的自增值保存策略,对于自增值保存的位置,我们分为两种情形讨论。...1、MyISAM引擎的自增值存储在数据文件中。 2、InnoDB引擎的自增值,在MySQL5.7和之前的版本中,自增值保存在内存中,不会持久。...每一次重新启动,第一次打开表格时,都会找到自增值max(id),然后把max(id)+步长作为当前的自增值。...select max(ai_col) from table_name for update; 在MySQL较高版本中,自增值的变化记录在redolog中,重启时依靠redolog恢复重启前的值。...以上就是mysql自增值保存位置的介绍,希望对大家有所帮助。更多mysql学习指路:MySQL 推荐操作系统:windows7系统、mysql5.8、DELL G3电脑

3K20

MySQL主键自增值为什么有“空洞”?

InnoDB引擎的自增值,其实是保存在了内存里,并且到了MySQL 8.0版本后,将自增值的变更记录在了redo log中,当MySQL发生重启的时候依靠redo log恢复重启之前的自增值。...同时插入指定值大于自增值时,自增值也会随之改变。...,但如果往小的修改就要看目前数据库插入的值是否会将修改后的自增值“卡”在中间,如果出现这种情况是没办法改回去的,原因显而易见,自增属性与主键配套使用,如果现在表里id=4和id=6之间差了个5的值,将自增值改回...5,当插入数据时,自增值就会插入5的值并且把自增值加1,问题就出现了,此时自增值再进行插入就违背了唯一的原则了 4.问题拓展 在生产环境中还存在很多类似的问题,如: # 目前的插入值为8,自增值为9 mysql...MySQL内存管理机制浅析 技术分析 | 浅析MySQL与ElasticSearch的组合使用 ---- 关于 GreatSQL GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR

3.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL数据表中的auto_increment自增值属性及修改

    环境说明: MySQL 5.7 、MySQL 8.0 长期以来,我的博客数据库中连续文章的主键编号一直都不是连续的,让我这个强迫症晚期患看着很不舒服。...把改完主键编号的文章数据导入新数据库之后,就产生了一个新问题:现在新数据表的主键自增值还是旧数据表的主键自增值。...查看自增值 一般来说,数据表中具有自增属性 AUTO_INCREMENT 的字段主要是数据表的主键或者具有唯一性的字段。...2、查看特定数据表的自增值 要想查看某个数据表中自增字段的当前自增值,可用以下命令: SHOW TABLE STATUS FROM [数据库名] LIKE [表名]; FROM [数据库名] 与 LIKE...FROM [数据库名] 表示指定查询所在的数据库;LIKE [表名] 指定该数据库下要查询的某个表,如果省略了 LIKE [表名] 子句,则表示查看该数据库下的所有表的信息。

    8.3K10

    MySQL查看数据库安装路径

    有时候在我们开发的过程中并不一定记得数据库的安装路径。...比如要查看MySQL 数据库的安装目录在哪里: 我们可以通过mysql命令查看mysql的安装路径: # 以下两个sql任意一个可查询 select @@basedir as basePath from...dual ; show variables like '%basedir%'; 上面可以看到基础的安装路径,查看数据库data的路径怎么看,很简单,把上面的参数变量换成datadir即可: # 以下查询任意一个均可...,那么朋友会问,如果也不知道登录mysql 的账户密码,那又如何在查看mysql路径呢?...方法一: 1:查询运行文件所在路径 which mysql 然后可通过 /usr/bin/mysql -u账号 -p密码 连接Mysql: 然后执行上面的任意一个MySQL查看安装路径。

    15.9K20

    开启查看Mysql数据库日志

    很多时候网站打开速度变慢,为了定位是否为数据库导致的,我们需要知道在访问网站的同时,站点执行了哪些SQL,每条SQL耗时多长。 为此,查看数据库日志是最直接的。...一般情况下,数据库日志默认是关闭的,因此需要先激活日志功能: 1....使用root用户登陆到数据库后,检查“数据库日志”是否开启 SHOW VARIABLES LIKE 'general%'; # 这份日志会保存到数据库的安装目录, Centos7默认的目录是 /var.../lib/mysql/ +------+-----------+ | Variable_name | Value | +------+-----------+ | general_log...无需重启数据库,直接刷新站点,发现 VM_211_224_centos.log 日志有内容,VM_211_224_centos-slow.log日志无内容(当然这是针对我的情况而言,mysql/mariadb

    10.1K10

    如何使用sql代码清空表,使重置id自增值

    在 SQL 中,如果你希望重置一个表的自增值(通常是主键 id),你可以使用不同的方法,具体取决于你使用的数据库管理系统(DBMS)。...以下是一些常见 DBMS 的示例: MySQL 在 MySQL 中,你可以使用 ALTER TABLE 语句来重置自增值。...-- 假设你的表名是 questions TRUNCATE TABLE questions; -- 清空表中的所有数据,同时重置自增值 -- 或者,如果你不想清空表,但只想重置自增值,可以使用以下方法...,通常使用序列来生成自增值。...影响:重置自增值可能会影响数据的完整性和引用完整性(如果其他表中有外键引用该表的主键)。 事务:在某些数据库系统中,重置自增值的操作可能是不可回滚的,所以请确保在事务外执行这些操作(如果适用)。

    3.2K10

    MySQL查看数据库表容量大小

    查看一个数据中所有表的相关信息: (1)可以在命令下使用show table status \G命令查看: (2)如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema...1.查看所有数据库容量大小 select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024/...1024, 2) as '索引容量(MB)' from information_schema.tables order by data_length desc, index_length desc; 3.查看指定数据库容量大小...例:查看mysql库容量大小 select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024...'; 4.查看指定数据库各表容量大小 例:查看mysql库各表容量大小 select table_schema as '数据库', table_name as '表名', table_rows as

    8.9K20

    MySQL查看数据库表容量大小

    查看一个数据中所有表的相关信息: (1)可以在命令下使用show table status \G命令查看: (2)如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema...1.查看所有数据库容量大小 select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024/...1024, 2) as '索引容量(MB)' from information_schema.tables order by data_length desc, index_length desc; 3.查看指定数据库容量大小...例:查看mysql库容量大小 select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024...'; 4.查看指定数据库各表容量大小 例:查看mysql库各表容量大小 select table_schema as '数据库', table_name as '表名', table_rows as

    24.5K01

    mysql: 查看数据库的字符集

    在MySQL数据库中,可以通过执行SQL查询来检查数据库的默认字符集,也可以查看特定数据库、表或列的字符集。...查看特定数据库的字符集: sql SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA...查看特定表的字符集: sql SHOW TABLE STATUS LIKE 'your_table_name'; 这会显示包括表的字符集在内的一系列属性。...查看当前连接的字符集设置: sql SHOW VARIABLES LIKE 'character_set%'; SHOW VARIABLES LIKE 'collation%'; 这些查询会返回当前数据库连接的字符集和校对设置...、 通过这些查询,可以了解到MySQL中的字符集配置情况。如果需要改变字符集,可以使用 ALTER 语句来更改数据库、表或列的字符集。

    4.4K10

    MySQL查看或显示数据库(SHOW DATABASES语句)

    在 MySQL 中,可使用SHOW DATABASES语句来查看或显示当前用户权限范围以内的数据库。...实例1:查看所有数据库列出当前用户可查看的所有数据库:mysql> SHOW DATABASES;+--------------------+| Database |+-------...sys:MySQL 5.7 安装完成后会多一个 sys 数据库。sys 数据库主要提供了一些视图,数据都来自于 performation_schema,主要是让开发者和使用者更方便地查看性能问题。...实例2:创建并查看数据库先创建一个名为 test_db 的数据库:mysql> CREATE DATABASE test_db;Query OK, 1 row affected (0.12 sec)再使用...1) 使用 LIKE 从句,查看与 test_db 完全匹配的数据库:mysql> SHOW DATABASES LIKE 'test_db';+--------------------+| Database

    1.1K10

    【说站】mysql教程 查看数据库创建信息

    mysql教程 查看数据库创建信息 1、使用命令select database(),从查询结果可以看出,我们当前没有进入到任何数据库。所以为NULL*/。...+------------+ | NULL       | +------------+ 1 row in set (0.00 sec) 2、用show tables语句,查询出来的结果是当前所用的数据库名称...mysql> show tables;   +-------------------+   | Tables_in_test    |   +-------------------+   | push_test...         |   | ship_order_detail |   +-------------------+   2 rows in set (0.00 sec) 以上就是mysql查看数据库创建信息的方法...,本篇主要带来当前使用数据库及其名称的查询,对照着mysql中不同的查询方法,大家学会后可以进行这方面的练习。

    2.4K10

    MySQL查看和修改数据库存储目录

    1.查看数据库存储目录 登录MySQL后使用如下命令: show global variables like "%datadir%" 查询结果: image.png 2.修改数据库存储目录 MySQL...默认数据库存储目录是在根目录/下,如果根目录存储空间很小的话,我们需要数据库的存储目录,具体方法可参考:MySQL更改数据库数据存储目录。...实际上我没有这么做,我的腾讯导师给了我一个很好的方法,就是使用软连接的形式,将/var/lib/mysql/目录下的数据库连接到其它空间较大的磁盘,而不用那么大费周折的修改配置文件和启动脚本来修改数据库存储目录...下面是我测试机器上MySQL数据库目录下的所有数据库,可见数据库PromotionGroup已经被拷贝到/data1目录下,并新建一个同名的软链接指向真实的数据库目录即可。

    4.3K20
    领券