1、查询mysql数据库存储位置
在cmd命令窗口,输入mysql -u root -p连接数据库
输入SHOW VARIABLES LIKE 'datadir';命令,返回数据库文件保存路径
2、如果mysql如果不在建表的时候指定索引
如果在创建表时没有显式地定义主键,则InnoDB存储引擎会按如下方式选择或创建主键:
当创建表时没有显示定义主键时.
1 首先判断表中是否有非空的整型唯一索引,如果有,则该列为主键(这时候可以使用 select _rowid from table 查询到主键列).
2 如果没有符合条件的则会自动创建一个6字节的主键(该主键是查不到的)
但是这个主键row_id是由InnoDB维护全局的隐藏主键(mysql里所有未定义主键的表都共享该row_id),如果有很多张表都没有主键,它们一直插入数据,全局row_id一直涨,直到涨到2^48-1时,这时候再加一就会溢出的row_id为0,出现主键冲突报错
Duplicate entry ‘4294967295’ for key 'PRIMARY’
为了避免这种隐患,
每个表都需要定一个主键。
如果表中数据过多,可以考虑用8个字节的bigint unsigned,据说能把世界上所有物品编号