总的来说,选择数据库可以从以下角度考虑:
从个人角度出发的话,如果是以学习和小型业务需求为主,推荐使用MySQL,它的优势在于:
成本(免费)
自由(完全开源,适用多个场景)
性能(体积小但速度快)
这三点决定了MySQL数据库的超高性价比。并且目前有不少主流公司仍然青睐MySQL,大名鼎鼎的Fackbook就依然在延续MySQL的使用。
2. 如果是企业角度出发,主流的大型数据库如Oracle、Sql Server...以及近些年来大数据领域十分火热的非关系型数据库,例如Redis、HBse等等,都可以作为考虑的对象。
接下来具体列举一些常用数据库的优缺点,希望能为大家提供参考:
MySQL:
优势:
MySQL是开放源代码的数据库,任何人都可以获得该数据库的源代码。
MySQL能够实现跨平台 *** 作,可以在Windows、UNIX、Linux和Mac OS等 *** 作系统上运行。
MySQL数据库是一款自由软件,大部分应用场景下都是免费使用。
MySQL功能强大且使用方便,社区生态繁荣,有诸多学习资料。
缺点:规模小,功能有限。
SQL Server
高度可扩展:可以从单一的笔记本电脑上运行任何东西或以高倍云服务器网络运行,或在两者之间任何东西。
“虽然说是“任何东西”,但是仍然要满足相关的软件和硬件的要求“
生态链广:具有内置的商务智能工具,以及一系列的分析和报告工具,可以创建数据库、备份、复制,带来了更好的安全性。
Oracle
Oracle数据库系统是目前世界上流行的关系数据库管理系统,具有以下特点:
可移植性好(在各类大、中、小、微机环境中都适用)
使用方便、
功能强
因此,Oracle是一种高效率、可靠性好的、适应高吞吐量的数据库解决方案。
DB2
DB2是IBM开发的一种大型关系型数据库平台。它支持多用户或应用程序在同一条SQL 语句中查询不同database甚至不同DBMS中的数据。它的应用特点如下:
支持面向对象的编程:db2支持复杂的数据结构,如无结构文本对象,可以对无结构文本对象进行布尔匹配、最接近匹配和任意匹配等搜索。可以建立用户数据类型和用户自定义函数。
支持多媒体应用程序:db2支持大二分对象(blob),允许在数据库中存取二进制大对象和文本大对象。其中,二进制大对象可以用来存储多媒体对象。
具有良好的备份和恢复能力
支持存储过程和触发器,用户可以在建表时显示的定义复杂的完整性规则
支持异构分布式数据库访问,支持数据复制
PostgreSQL
PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),它的 Slogan 是 “世界上最先进的开源关系型数据库”。
PostgreSQL具有如下特征:
函数:通过函数,可以在数据库服务器端执行指令程序。
索引:用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。
触发器:触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。 多版本并发控制:PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的”快照”,用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。
规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的 *** 作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。
数据类型:包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据等。
全文检索:通过 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。
NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 数据库的外部数据包装器。
数据仓库:能平滑迁移至同属 PostgreSQL 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL
SQLite 索引(Index)是一种特殊的查找表,数据库搜索引擎用来加快数据检索。简单地说,索引是一个指向表中数据的指针。一个数据库中的索引与一本书后边的索引是非常相似的。例如,如果您想在一本讨论某个话题的书中引用所有页面,您首先需要指向索引,索引按字母顺序列出了所有主题,然后指向一个或多个特定的页码。 下面是一个sqlite上建立索引的例子
CREATE INDEX index_name ON table_name
sqlite中支持fts表(full-text search的简称),fts3其实是sqlite的一个扩展模块,是虚拟表模块,允许用户去实现全文检索。下面是一个简单的例子:
Java代码
CREATE VIRTUAL TABLE enrondata1 USING fts3(content TEXT)
可以看到,使用上面的语法即创建了一个fts3的表了,而检索时,根据手册上说的:
SELECT count(*) FROM enrondata1 WHERE content MATCH 'linux' /* 0.03 seconds */
SELECT count(*) FROM enrondata2 WHERE content LIKE '%linux%'/* 22.5 seconds */
看到没?这里是使用match了,而不是传统的like,而且效率很高了。
还支持如下的语法:
SELECT * FROM words_fts WHERE words_fts MATCH 'description: company'
即列名:该列要搜索的关键词
还可以这样:
SELECT * FROM words_fts WHERE words_fts MATCH 'description: comp*'
即支持通配符了
索引主要是针对表中的一列或者是多列建立的升序或者是降序的排列。全文索引是索引的升级,他是针对整个文件的字符匹配。而且建立和全文索引以后就可以对创建了该索引的表进行全文检索.
FTS2500处理器是一种专为实时数据库应用设计的RISC处理器,支持整个实时数据库应用生命周期,使其能够在尖端、高要求的分析应用中表现出色。基于32位VLIW架构,FTS2500拥有可靠性和可编程性。据报道,该处理器采用了1.5GHz频率,支持32位整数代码和浮点数代码,同时采用了多级流水线,提高了处理能力。
从内存体系结构上看,FTS2500的内存系统包括32KB的数据cache、128KB的指令cache及64KB的静态RAM,经过优化使I/O *** 作更快。与此同时,FTS2500为实时运算提供了强大的复位功能,它采用双保护技术,有效保护程序对象和体系结构,将运算结果准确把握。
此外,该处理器支持多种嵌入式和硬件/软件混合开发模式,而且拥有广泛的控制接口和支持。它提供了在联网和网络相关应用中实现硬件/软件协同控制的完整平台,在实时系统应用中发挥着重要作用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)