起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2507|回复: 1

[分享] 浅谈数据库索引设计,提倡先建表,后映射概念。重要!

[复制链接]

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-6-30 22:43:39 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
BeX5的从概念产生数据库表结构的做法是不值得推荐的,最大的问题就是性能低下。
也许这样是可以快速开发,但是BeX5是个重型机器,不得不考虑性能,不然如何支持高并发响应?既然要收费,肯定是用的人越多越好,人多了又如何保证性能?性能是不可不考虑的问题,但官方似乎在回避它。

我先简单介绍下这个数据库的索引设计,抛砖引玉说明先建表的好处。
就拿最常用的mysql数据库来说吧,简单的建索引,一般都是为了加快查询速度,针对where条件来建索引。虽然BeX5的概念里也提到了索引,但是却没有考虑算法。索引是有算法的,即使是功能最烂的mysql数据库,也支持设置索引的算法。对于精确匹配的场合,一般查询里用=来匹配,那么就最好用HASH索引,性能可以大大提高,特别是主键和唯一索引,90%以上都使用HASH索引算法。另外还有BTREE索引,如果不指定索引类型,默认就是它了,这种索引是用在<、<= 、=、 >=、 >和前缀like(如 like 'foo%')的场合使用的,非前缀like无法使用索引。如果要用位运算符,那么就需要建立RTREE索引算法,不过这一般用的很少。

补充说明,主键也是可以指定索引算法的,不指定默认是BTREE,因此如果你的主键只用于多表关联,也就是=来匹配,那么还是更改为HASH算法的好哦

998

主题

4330

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10726
QQ
发表于 2016-7-10 18:25:26 | 显示全部楼层
1、赞同你说的“索引类型对系统高并发很重要”,但不是一个平台考虑的主要问题,通过x5studio可以设置索引类型,可以在后面版本中加上去,
做为一个新特性提出来;
2、不提倡在使用x5时“先建表,后映射概念”,不同的平台有不同的使用场景,就算同一个平台在一个项目或者系统的不同时期重要性也不同;
3、一定要想清楚在项目的一个阶段中,使用x5要解决什么问题,和能解决什么问题
孤舟蓑笠翁,独钓寒江雪。
X5牛刀交流民间第一群:30057529
提供有偿服务,联系WX:18332024
bex5疑难问题解决方案
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-5 19:02 , Processed in 0.071380 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表