如何在MYSQL中的两列上实现B TREE算法

时间:2013-08-19 14:58:21

标签: mysql indexing b-tree

我即将在MYSQL数据库上创建一个非常大的位置表。第一列将是位置的x值或水平值,第二列将是位置的y值或垂直值。 (如经度和纬度,但使用无符号整数)。

  CREATE TABLE IF NOT EXISTS `locations` (
    `horizontal_position` INT NOT NULL,
    `vertical_position`   INT NOT NULL,
    /*other columns*/
    )

x值和y值都同样重要,所以暂时我想要需要一个双主键,但我甚至不知道这是否可行。 我认为最好使用B TREE算法进行索引,但不知道如何使用x和y列。我可以通过在bigint中只包含一个包含x和y值的列来避免这种情况,但这似乎是数据库人们会皱眉的解决方案。

那么如何在两列上创建B TREE索引以及我的主键是什么?

提前致谢

1 个答案:

答案 0 :(得分:0)

我想你想要一个空间索引。这些记录在here

有用于多维索引的索引类型。最着名的是R-D树,它通常与空间索引相关联。这些通常是基于SQL的扩展视图,这是不幸的,因为多维数据很常见。