mysql - 如何使用索引表以获得更快的性能?

标签 mysql performance indexing

我听说索引可以使搜索速度更快,但新人实际上已经经历过这一点。我有一个在列上建立索引的表。现在我应该如何运行查询,以便充分利用此索引并更快地获得查询?

我当前对索引表的查询:

String getFS = "select * from TABLEname where number="+MobNum;

没有任何特殊的性能提升或任何东西。我使用的索引错误吗?

这是我的表结构

CREATE TABLE `VPN_UserInformation` (

   `id` varchar(20) CHARACTER SET utf8 NOT NULL,
  `number` varchar(30) CHARACTER SET utf8 NOT NULL DEFAULT '000000000000000000000',

  PRIMARY KEY (`id`),
  KEY `number` (`number`),

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

最佳答案

是的,索引肯定会提高查​​询性能,但有一些隐藏的东西

  1. 整数列上的索引比 varchar 列上的索引快得多(您的情况) 如果可能的话,您可以尝试将数字列(我假设是移动设备)设置为整数或bigint,并测试带或不带大尺寸索引的性能

  2. 如果该表中不仅仅是 ID 和电话号码,请仅写入将在进一步处理中使用的必需列,而不是使用 *(这是最佳实践,将提高性能)

  3. 运行 reorg 和 runstats 以确保测试计划正在使用索引并且不存在碎片。

关于mysql - 如何使用索引表以获得更快的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23373340/

相关文章:

sql - 在 Postgres 的单个索引中包含多个列

php - 我想使用 Wamp 服务器安装 vtigercrm 7.0.1

Java:相对于当前(服务器)时间的日期和时间

Javascript 优化...全局变量

c# - 棋盘表示 - 引擎

c# - 如何在 C# 和 C++ 中测量耗时

sql-server - 索引是否已覆盖聚集主键?

mysql - 查询生成器 : orderBy not working after group by

mysql查询逻辑涉及同一列

SQLite 识别缺失的索引