通过实验分析索引对MySQL插入时性能的影响

通过对MySQL数据库进行实验,发现索引在插入操作时确实会影响性能。整型作为主键时性能下降约13%,字符串作为主键时下降4倍。整型字段建立索引则性能下降60%。当查询远大于修改次数时,牺牲部分插入性能可能是值得的。实验还发现,插入数据的顺序也会影响性能,数字在前的字符串插入更快。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽说给表增加索引在查询的时候能大大加快查询速度,但是索引在修改的会降低数据库的性能(要检查、更新索引需要时间) 如果您发现实验过程有什么不当之处恳请指正 :)

实验结果:
没有索引    整型做Primary Key   整型做Index  字符串做Primary Key   字符串做Index
53                61                   81               216                 218
数据都是在插入100万的时候得出的,时间单位:秒
可以看出整型当成PK的时候,性能下降了13%,字符串的时候性能下降了4倍吧,没有必要的时候别用字符串做PK,整型做Index的时候性能下架了60%吧 (性能都是值插入数据的时候的性能)

当然如果你的查询次数远大于修改次数,这点性能的舍弃还是值得的!所以避免数据库中索引满天飞的情况吧
------------------------------------------------------------------------------



详细实验过程:(表的引擎都是  ENGINE=MyISAM )
先看表结构:
mysql> desc Test_Key;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   | PRI |         |       |
| name  | varchar(255) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
Int型的id在这里是主键

性能分析存储过程:
create PROCEDURE proc_test_performance(in count bigint)
BEGIN
    DECLARE st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值