`

mysql 操作索引FORCE INDEX

 
阅读更多
1、创建索引

索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。以下命令语句分别展示了如何创建主键索引(PRIMARY KEY),联合索引(UNIQUE)和普通索引(INDEX)的方法。

mysql>ALTER TABLE `table_name` ADD INDEX `index_name` (column list);

mysql>ALTER TABLE `table_name` ADD UNIQUE `index_name` (column list);

mysql>ALTER TABLE `table_name` ADD PRIMARY KEY `index_name` (column list);

mysql>CREATE INDEX `index_name` ON `table_name` (column_list);

mysql>CREATE UNIQUE INDEX `index_name` ON `table_name` (column_list);

mysql>ALTER TABLE `article` ADD INDEX (`id`,`order_id`);给article表增加id索引,order_id索引

mysql>ALTER TABLE `article` ADD INDEX `id`;//给article表增加id索引



2、重建索引

重建索引在常规的数据库维护操作中经常使用。在数据库运行了较长时间后,索引都有损坏的可能,这时就需要重建。对数据重建索引可以起到提高检索效率。

mysql> REPAIR TABLE `table_name` QUICK;


3、查询数据表索引

mysql> SHOW INDEX FROM `table_name`;

4、删除索引

删除索引可以使用ALTER TABLE或DROP INDEX语句来实现。DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下:

mysql>DROP index `index_name` ON `table_name` (column list);

mysql>ALTER TABLE `table_name` DROP INDEX `index_name` (column list);

mysql>ALTER TABLE `table_name` DROP UNIQUE `index_name` (column list);

mysql>ALTER TABLE `table_name` DROP PRIMARY KEY `index_name` (column list);


在前面的三条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此也可不指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。

5、强制使用索引

mysql>SELECT * FROM TABLE1 FORCE INDEX (索引名或PRIMARY) ;


6、联合索引

mysql>alter table test add key id_a_b(a,b) ;


对于联合索引当条件为 a=1 and b=1 则使用索引 ,当a=1 时也使用索引 当单独使用b=1时则不使用索引。


分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    04-VIP-Mysql索引优化实战一.pdf

    MySQL索引优化是数据库性能提升的关键环节,本篇主要探讨了几个关于MySQL索引使用和优化的重要知识点。 首先,创建了一个名为`employees`的员工记录表,其中包含`id`(主键)、`name`、`age`、`position`和`hire_...

    mysql查询优化之索引优化

    - **使用索引提示**:在某些复杂查询中,可以使用SQL的FORCE INDEX或USE INDEX提示强制MySQL使用特定的索引。 - **避免全表扫描**:通过优化查询语句,减少不必要的全表扫描,例如,避免在WHERE子句中使用NOT IN、!...

    mysql 索引失效详解

    2. 使用 FORCE INDEX 语句强制使用索引。 3. 优化查询语句。 结论 ---------- 索引是 MySQL 中的一种加快数据检索速度的数据库对象。但是,如果不正确使用索引,可能会导致索引失效。因此,了解索引的使用原则和...

    mysql索引分析和优化

    ### MySQL索引分析和优化深度解析 #### 引言 MySQL数据库系统中,索引扮演着至关重要的角色,尤其在大数据量的环境下,其对查询性能的影响不可小觑。索引能够极大地加速数据检索速度,减少数据库服务器的负载,...

    MySQL 进阶-索引使用规则

    - 使用 `FORCE INDEX`, `USE INDEX`, 或 `IGNORE INDEX` 提示来强制或排除特定索引的使用。 通过深入了解这些索引使用规则,并结合实际场景应用,可以显著提升MySQL数据库的查询性能。记住,正确地创建和管理索引...

    mysql中or是否走索引详解

    本篇文章将深入探讨在MySQL中`OR`操作符如何影响索引的使用,并提供一些优化查询的策略。 首先,我们需要了解索引的基本原理。在MySQL中,B-Tree索引是最常见的类型,用于单列和复合列。当一个查询只包含单个索引列...

    MYSQL中常用的强制性操作(例如强制索引)

    1. **强制索引(FORCE INDEX)**: 当你希望数据库强制使用某个特定的索引而不是默认选择时,可以使用`FORCE INDEX`。例如: ```sql SELECT * FROM TABLE1 FORCE INDEX (FIELD1) … ``` 这条SQL语句将只使用...

    MySQL索引失效的11种情况.docx

    ### MySQL索引失效的11种情况 #### 知识点概述 在MySQL数据库中,索引是非常重要的优化工具之一,它可以显著加快数据检索的速度。然而,在某些情况下,索引可能会失效,导致查询效率降低。了解这些情况对于优化...

    Mysql建表与索引使用规范详解

    - **FORCE INDEX**:在必要时,可以使用FORCE INDEX强制MySQL使用特定索引,提高效率。 12. **维护与分析**: - **ANALYZE TABLE**:定期执行此命令更新表的统计信息。 - **慢查询日志**:监控慢查询日志,使用...

    mysql索引使用率监控技巧(值得收藏!)

    MySQL索引是数据库管理系统中用于加速数据检索的关键组件。它们通过创建指向表中实际数据页的逻辑指针,使得查询可以快速定位到所需的数据行,从而显著提高查询速度。MySQL支持两种主要类型的索引:哈希(Hash)和B...

    10.MySQL为什么有时候会选错索引?1

    而当我们使用`FORCE INDEX(a)`强制使用`a`索引时,扫描了10001行,执行时间降到了21毫秒,证明了优化器在未强制指定索引时做出了错误的选择。 优化器在判断扫描行数时,通常依赖于表的统计信息,如索引的...

    MySQL进阶学习需要掌握的具体内容解析,MySQL数据库如何使用和优化索引.docx

    - 在SQL语句中使用`FORCE INDEX`和`USE INDEX`提示强制使用特定索引。 **3. 存储引擎特性** - 熟悉不同存储引擎(如InnoDB和MyISAM)的特性,合理选择以适应不同的应用场景。 **4. 慢查询日志** - 启用慢查询...

    MySQL VS ORACLE.pdf

    对于查询优化,Oracle提供了丰富的提示(hints)来指导优化器,而MySQL使用force index/use index来优化查询。Oracle的查询缓存能够存储SQL语句的执行结果,而MySQL的查询缓存功能较弱,通常只能在存储过程中使用。 ...

    Mysql索引会失效的几种情况分析

    可以通过调整统计信息、优化查询语句或使用索引提示(如FORCE INDEX)来影响优化器的决策。 为了监控索引的使用情况,可以使用`SHOW STATUS LIKE 'Handler_read%'`命令。`Handler_read_key`表示使用索引完成的读取...

    MySQL OCP超详细学习笔记.pdf

    在索引管理方面,本笔记介绍了 Innodb 索引的使用、Force index 的使用、alter ignore table 和 old_alter_table 的使用等。这些索引和命令可以帮助 MySQL DBA 优化查询性能,提高数据库的查询速度和数据安全性。 ...

    MySql优化.pdf

    比如,使用FORCE INDEX来强制使用某个索引,使用IGNORE INDEX来忽略某个索引,或者使用SQL_NO_CACHE来强制查询不使用查询缓存。 七、服务器配置优化 除了针对查询的优化外,MySQL服务器的配置也对性能有很大影响。...

Global site tag (gtag.js) - Google Analytics