Mysql调优-1数据类型的优化
一、mysql的3层结构
大部分操作是分析器和优化器里面执行的;
二、mysql操作:
1.查看mysql的版本号
2.mysql -uroot -p->输入密码
3.执行某条sql命令,执行后再执行show profiles;、
show profile;(最近一条)
show profile for query 2;(query_id);
show profile all;
三、
查看mysql端口号:
登录mysql,执行sql语句: show global variables like 'port';
mysql仅允许本机访问修改解决方案:
创建数据库temp和表tmp1以及tmp2;tmp1中的id使用的是int(4),int存储4个字节;tmp2中的id使用的是smallint(4),smallint存储2个字节;
程序代码:
public static void main(String[] args){
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://ip:port/temp","user","pwd");
PreparedStatement ps = conn.prepareStatement("insert into tmp2 values(?,?)");
for(int i=0;i<=2605;i++){
ps.setInt(1,i);
ps.setString(2 ,i+"");
ps.addBatch();
}
ps.executeBatch();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
存储引擎为innodb:
tmp1.frm: 当前存储的表结构文件
tmp1.ibd:当前存储的数据文件
存储引擎为myISAM:
.frm:当前存储的表结构文件
.MYD:当前存储的数据文件
.MYI:当前存储的索引文件
int存储字节为4字节;smallint存储字节为2字节
每个表中都存放了2606个数据;
查询表tmp1和表tmp2中id=99的记录并比对查询时间:
不同的数据格式,查询时间是不一致的,应该使用对应的类型来查询;例如时间就使用Date类型;
四、mysql的数据类型
show profile : https://www.cnblogs.com/developer_chan/p/9231761.html
mysql中提供转ip的函数 INET_NTOA('255.255.255.255')对应ip的最大值,变成整型;
INET_NTOA('')
数据库存储的话是整型还是字符串?整型存储的空间占用少;
尽量使用满足需求的最小数据类型;
1.字符串:
一般使用char和varchar类型就可以了;
varchar(5)与varchar(255)保存同样的内容,硬盘存储空间相同,但内存空间占用不同,是指定的大小。
解释:
大小和占用空间大小不同-磁盘预读
int(M) M表示的不是数据的最大长度,只是数据宽度,并不影响存储多少位长度的数据;
varchar(M) M表示的是varchar类型数据在数据库中存储的最大长度,超过则不存
一般对于BLOB和TEXT:存储太大的字符串的时候,存放在文件中,然后文件地址保存到数据库中;
2.时间:
时间类型的选择关系到精度
datetime/timestamp/date
timestamp和date涉及到时区;
3.枚举:
例如性别,存储0,1之后转换为男女,转换的工作可以在mysql中完成;
create table enum_test(sex enum('male','female','uncertain') default 'uncertain');
insert into enum_test(sex) values('female');
create table enum_test(sex enum('male','female','uncertain') default 'uncertain');
insert into enum_test(sex) values('female');
insert into enum_test(sex) values('male');
insert into enum_test(sex) values('uncertain');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理