mysql innodb 主键,Mysql InnoDB 引擎 主键性能
前些天看到网上有人说:Mysql InnoDB 引擎 主键不适合用UUID , 若要用UUID的话可考虑用 自增ID做物理主键,UUID做逻辑主键。 带着以上问题,本人做了如下测试: 先自报测试环境: 测试电脑配置如图: MySQL 5.1(社区版) my.ini配置如下 [client]port=3306
前些天看到网上有人说:“Mysql InnoDB 引擎 主键不适合用UUID , 若要用UUID的话可考虑用 自增ID做物理主键,UUID做逻辑主键。”
带着以上问题,本人做了如下测试:
先自报测试环境:
测试电脑配置如图:
MySQL 5.1(社区版) my.ini配置如下
[client]
port=3306
socket= MySQL
[mysqld]
port=3306
socket= MySQL
key_buffer_size = 64M
max_allowed_packet = 16M
thread_cache_size = 8
thread_concurrency = 8
max_connections = 100
table_open_cache = 2048
sort_buffer_size = 8M
read_buffer_size = 2M
read_rnd_buffer_size = 24M
net_buffer_length = 2K
thread_stack = 1024K
server-id= 1
character-set-server=utf8
default-storage-engine=INNODB
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
character-set-server=utf8
[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
c3p0连接池配置:
jdbcUrl = jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
user = root
password = root
devMode = true
driverClass = com.mysql.jdbc.Driver
maxPoolSize = 30
minPoolSize = 3
initialPoolSiz e= 3
maxIdleTime = 120
acquireIncrement = 3
测试语言为:JAVA
框架使用的是:JFinal1.1.0
测试结果如下:
1、插入测试:
第一次 插入350000行数据
第二次 插入350000行数据
第三次 插入350000行数据
第四次 插入350000行数据
插入1000000行数据
插入8000000行数据
UUID主键
33750毫秒
36772毫秒
34885毫秒
35217毫秒
111496毫秒
1070219毫秒
自增ID主键
27939毫秒
28709毫秒
29015毫秒
28728毫秒
85666毫秒
654988毫秒
自增ID物理主键、UUID逻辑主键(唯一索引)
58578毫秒
-
-
-
110851毫秒
-
2、count()查询
count(*)
count(id)
UUID主键(表中有10400000行数据,ID在第一位)
30634毫秒
31312毫秒
自增ID主键(表中有10400000行数据,ID在第一位)
5461毫秒
5514毫秒
由于时间原因,就暂时测试这几种情况吧…… 毕竟在正式项目中,还有很多不可控因素…… 剩下的就是仁者见仁智者见智,我只是抛砖引玉
mysql innodb 主键,Mysql InnoDB 引擎 主键性能相关推荐
- Mysql主键索引与非主键索引
Mysql主键索引与非主键索引 前言 InnoDB引擎 主键索引: 非主键索引 MySIAM引擎 主键索引 非主键索引 InnoDB和MyISAM的区别 前言 什么是B树: B树也叫B-树,是一棵多路 ...
- mysql innodb 二级索引,mysql InnoDB index 主键采用聚簇索引,二级索引不采用聚簇索引...
我的归纳: (1)InnoDB的主键采用聚簇索引存储,使用的是B+Tree作为索引结构,但是叶子节点存储的是索引值和数据本身(注意和MyISAM的不同). (2)InnoDB的二级索引不使用聚蔟索引, ...
- MySQL之innodb与myisam:锁 事务 外键 主键 存储结构 存储大小 索引 count 注重点
行锁:innodb支持行锁 事务:innodb支持事务 外键:MyISAM不支持InnoDB支持 主键:myisam允许没有索引和主键的表存在:innodb如果没有设定主键或者非空唯一索引,会生成一个 ...
- MySQL 使用自增ID主键和UUID 作为主键的优劣比較具体过程(从百万到千万表记录測试)...
測试缘由 一个开发同事做了一个框架.里面主键是uuid.我跟他建议说mysql不要用uuid用自增主键,自增主键效率高,他说不一定高,我说innodb的索引特性导致了自增id做主键是效率最好的,为了拿 ...
- mysql事务用法介绍及储存引擎介绍(MyLSAM,Innodb)
文章目录 前言 事务 什么是事务 事务的3大范式 事务的三大特点 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 控制事务 ...
- 数据库关机_数据库:MySQL常见的三种存储引擎InnoDB、MyISAM、MEMORY的区别?
InnoDB.MyISAM两种存储引擎的大致区别? 1.InnoDB支持事务,MyISAM不支持, 这一点是非常之重要.事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyI ...
- mysql实战38 | 都说InnoDB好,那还要不要使用Memory引擎?
我在上一篇文章末尾留给你的问题是:两个 group by 语句都用了 order by null,为什么使用内存临时表得到的语句结果里,0 这个值在最后一行:而使用磁盘临时表得到的结果里,0 这个值在 ...
- MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)...
Reference: https://blog.csdn.net/mchdba/article/details/52336203 一个开发同事做了一个框架,里面主键是uuid,我跟他建议说mysql不 ...
- mysql非主键索引_主键索引和非主键索引的区别
1. 什么是最左前缀原则? 以下回答全部是基于MySQL的InnoDB引擎 例如对于下面这一张表 如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下 如果我们要进行模糊查 ...
最新文章
- 【JZOJ5064】【GDOI2017第二轮模拟day2】友好城市 Kosarajo算法+bitset+ST表+分块
- 要不要跳槽,看完就懂了
- mac最好用的markdown_Markdown 语法简明教程 amp; Markdown 编辑器推荐
- Windows 下各种Python库的下载与安装
- 201621123003《Java程序设计》第一周学习总结
- JS 向未声明的变量分配值(可删除)
- Codewars-parseInt() reloaded(实现英文单词和数字的转换)
- [原创]jQuery插件Realtime-Modifier正式发布!
- 华为机试HJ60:查找组成一个偶数最接近的两个素数
- 用计算机弹奇迹再现谱子,《原神》奇迹再现乐谱分享 风物之诗琴乐谱分享
- vue 数字上下滚动抽奖
- 安装和卸载IE浏览器
- html5 旋转木马相册,HTML5 CSS3 专题 :诱人的实例 3D旋转木马效果相册
- html5制作人物动作,如何用3DMAX制作多动作人物
- NER项目--github--A Unified MRC Framework for Named Entity Recognition
- 四月份适合发微信朋友圈的文案
- 【军事学视频课程】《战争论》的基…
- 5G 中的SDN/NFV 和云计算
- Nebula 官方地址
- 小梅哥FPGA视频教程学习总结(持续学习中……)
热门文章
- 刚刚,蚂蚁金服荣膺“中国金融大数据领军企业”称号
- LInux main.cpp 编码问题 导致影响后面的内容
- python基础===pip安装模块失败
- 数据中心的7个新兴发展趋势
- 《网站设计 开发 维护 推广 从入门到精通》—— 2.3 页面设计创意思维
- 游戏UI框架设计(三) : 窗体的层级管理
- Unity3d5.0 新UI之2048
- 初涉SQL Server性能问题(3/4):列出阻塞的会话
- 【Android开发】范例4-猜猜宝石放在哪个箱子里
- 高职扩招有计算机专业吗,高职扩招计算机专业