我需要创建一个存储以下内容的数据库(总共约5,765个条目):http://s18.postimg.org/s73exwemf/Capture.jpg
我正在使用MySQL Workbench来创建我的架构。到目前为止,我有一个包含以下列的表:
EPSG代码(INT) - PK,NN
CRS_NAME CHAR(50) - UQ
CRS_TYPE - ENUM('预计','地理2D','地理3D','地心','垂直','复合')
PROJ_FILE - CHAR(800)
我的数据表有意义吗?通常,我将使用EPSG代码检索CRS名称,类型和proj文件内容。但有时,唯一可用的信息可能是CRS名称。这就是为什么我让CRS_NAME成为一个独特的索引。
这有意义吗?我是SQL的新手,到目前为止我很享受它。
答案 0 :(得分:1)
以下是大多数人在使用数据库(主要是MySQL)近10年后开发的个人偏好。
TINYTEXT
,MEDIUMTEXT
,TEXT
等......可能是更好的选择(或等效BLOB
s)。 CHAR(800)
将使用800(或更多
取决于字符集)字节是否保持不存在或是
充分。 VARCHAR(800)
可能更好(从空间使用的角度来看),但是如果
使用MyISAM引擎,导致数据行动态(减慢速度
查询)。无论使用何种引擎,TEXT和BLOB类型都只占用
他们需要尽可能多的空间而且不会碎片"像VARCHAR这样的表。
缺点是它们在搜索范围内要复杂得多
和索引。