SQL Server 2012 引入了一种称为列存储索引的新索引类型以及可一次高效处理批量行的新查询运算符。这两个功能一起极大地提高了典型数据仓库查询的性能,在某些情况下提高了两个数量级。本文概述了列存储索引和批处理模式处理的设计,并总结了该技术为客户提供的主要优势。它还重点介绍了一些早期的客户体验和反馈,并简要讨论了列存储索引的 future 增强功能。
我的问题是:
有什么方法可以将 PHP-Mysql 演示连接到该类型的数据库吗?
有很多“MySql Based”引擎,如下
- InfiniDB
- Infobright
- MonetDB
- ...等
有什么简单的PHP-Mysql入门方法吗?
最佳答案
InfiniDB 是一个 GPLv2 完全开源 MySQL 线兼容数据库。它使用 MySQL 服务器作为前端,后端已针对列式存储进行了更改和优化。除了 InfiniDB 列表之外,还支持 MyISAM 和 InnoDB 表。开源版本和企业支持版本没有限制。根据需要使用任意数量的节点和 TB。如果您现在使用 MySQL,则可以直接替换 InfiniDB,并且应该能够通过现有的 MySQL 接口(interface)进行连接。建议使用 InfiniDB 的打包 cpimport 实用程序将数据加载到表中,它已经针对插入到 InfiniDB 引擎中进行了优化,建议使用它来代替 LOAD DATA。
顺便说一句,我是 InfiniDB 的架构师,所以这是我的偏见,可以自由尝试、使用和扩展:)
以下是来自 php.net 的 PHP 示例,在本地针对我的 InfiniDB 实例运行:
我更改了 php.ini 以指向 InfiniDB 安装中的 mysql.sock(我在与数据库相同的服务器上运行 PHP)
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.default-socket
mysql.default_socket = /usr/local/Calpont/mysql/lib/mysql/mysql.sock
使用这个 phptest.php(基本上是来自 php.net 的副本以及我自己的数据库和表)
<?php
// Connecting, selecting database
$link = mysql_connect('localhost', 'root', '')
or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('wide') or die('Could not select database');
// Performing SQL query
$query = 'SELECT count(*) FROM wide';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
// Printing results in HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
// Free resultset
mysql_free_result($result);
// Closing connection
mysql_close($link);
?>
然后运行:
[root@michael-vm2 tmp]# php phptest.php
Connected successfully<table>
<tr>
<td>100000</td>
</tr>
</table>
这都是 InfiniDB 的原生安装。只需更改您的创建语句以指定 engine=infinidb 即可。
关于php - 使用 PHP 连接到列式数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22482807/