在 MySQL ( doc )中使用 Sphinx 存储引擎而不是普通api 的优缺点是什么?
我只是在读一本书,在其中一个例子中我得到了通知:

SQL Server 跟踪各种内部位图中的页面分配。其中包括全局分配映射 (GAM) 和页面可用空间 (PFS) 页。我们知道 GAM 页面以511232页的设定间隔出现,PFS 页面以 8088 页的设定间隔出现。
如果数据文件足够大,这种重复最终将导致 GAM 和 PFS 中的下一个页面。计算一下,这发生在 1,011 个 GAM 或 63,904 个 PFS 页(页码 516,855,552)之后。这相当于一个略低于 4TB 的操作系统文件。由于单个数据文件的最大大小为 16TB(源),因此这是允许的。
我的问题:当单个数据文件达到 4TB 时,哪种页面类型是页面 516855552 - GAM 还是 PFS?另一个去哪儿了?Paul Randal 的这条评论表明它被分流到 GAM 范围内其他未使用的页面之一:
除第一个之外的 GAM 区有 GAM、SGAM、DIFF_MAP、ML_MAP。每 4TB GAM 范围还将有一个 PFS 页。
我发现这里引用了这一点,但没有明确解释:
Run Code Online (Sandbox Code Playgroud)-- There may be an issue with the ML map page position -- on the four extents where PFS …
我很快就会将 Debian Lenny 网络服务器迁移到另一台主机和 Debian Squeeze。即使在 Squeeze 上,标准 MySQL 安装也是 5.1,因此将默认为 MyISAM - 我倾向于坚持我通常的经验法则,我尽可能保持 Debian 安装的标准以获得最大稳定性,特别是因为启用 InnoDB 没有似乎是万无一失的
数据库上的事务负载很小,因为它是一个低流量网站。与其他任何事情相比,我更关心保持管理尽可能简单。该网站运行由第三方开发的定制版 WordPress。
我应该补充一点,我对任何形式的 MySQL 的经验都很少。
我应该坚持我的计划还是借此机会研究 InnoDB?
-- 示例 1:使用聚集索引
CREATE TABLE tbl5
(
i VARCHAR(900) NOT NULL
) ;
GO
CREATE CLUSTERED INDEX CIX_tbl5
ON tbl5 (i ASC) ;
GO
INSERT INTO tbl5
( i )
VALUES
( REPLICATE('a' , 900) )
, ( REPLICATE('b' , 900) )
, ( REPLICATE('c' , 900) )
, ( REPLICATE('d' , 900) )
, ( REPLICATE('e' , 900) )
, ( REPLICATE('f' , 900) )
, ( REPLICATE('g' , 900) )
, ( REPLICATE('h' , 900) ) -- 900 …Run Code Online (Sandbox Code Playgroud) 我有一个表 people 有两个非聚集索引。
create table people(
id_person int,
first_name varchar(50),
last_name varchar(50),
city varchar(100),
state char(2),
zip_code int
)
CREATE INDEX id_first_name_last_name ON people(first_name, last_name, id_person)
CREATE INDEX id_last_name_first_name ON people(id_person, last_name, first_name)
Run Code Online (Sandbox Code Playgroud)
每个索引引用相同的列,但顺序不同。
-- 插入一些行
insert into people values(1,'joe','smith','new york', 'NY', 10701)
insert into people values(2,'john','smith','new york', 'NY', 10701)
insert into people values(3,'joyce','smith','new york', 'NY', 10701)
insert into people values(4,'jocelyn','smith','new york', 'NY', 10701)
Run Code Online (Sandbox Code Playgroud)
每个索引的大小如下
TableName IndexName IndexID Indexsize(KB)
people NULL 0 16
people id_first_name_last_name 2 16
people id_last_name_first_name 3 …Run Code Online (Sandbox Code Playgroud) 我已经在 Ubuntu 14.04 中安装了 MongoDB,但我无法将其存储引擎更改为 WiredTiger。
我已经向 /etc/mongod.conf 文件添加了必要的更改,即如下所示:
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
engine: wiredTiger
Run Code Online (Sandbox Code Playgroud)
我已经使用以下命令启动了 mongod 进程:
mongod - f /etc/mongod.conf
服务器启动了,但是当我连接到我的 shell 时仍然收到警告-:
2017-01-10T15:36:54.866+0530 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?这些变化似乎没有效果。
我正在将 Windows 中的 JIRA 从 HSQL 迁移到 MySQL,但我遇到了消息Unknown system variable 'storage_engine'。虽然我创建了一个备份,安装了 MySQL 并将 J 连接器复制到了 JIRA 的库中。
然后我设置系统变量storage_engine = InnoDB并重新启动机器,但消息仍然存在。
你能指点我一个好的方向吗?
当我想创建表时,我安装了 Percona Server 5.6.12-rc60.4,例如:
CREATE TABLE IF NOT EXISTS `mydb`.`table` (
`id` INT NOT NULL AUTO_INCREMENT ,
`title` VARCHAR( 64 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = XtraDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)
发生此错误:
#1286 - Unknown storage engine 'XtraDB'
Run Code Online (Sandbox Code Playgroud)
如何使用 XtraDB 引擎创建表?