- 浏览: 595643 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
1、创建索引
索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。以下命令语句分别展示了如何创建主键索引(PRIMARY KEY),联合索引(UNIQUE)和普通索引(INDEX)的方法。
2、重建索引
重建索引在常规的数据库维护操作中经常使用。在数据库运行了较长时间后,索引都有损坏的可能,这时就需要重建。对数据重建索引可以起到提高检索效率。
3、查询数据表索引
mysql> SHOW INDEX FROM `table_name`;
4、删除索引
删除索引可以使用ALTER TABLE或DROP INDEX语句来实现。DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下:
在前面的三条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此也可不指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。
5、强制使用索引
6、联合索引
对于联合索引当条件为 a=1 and b=1 则使用索引 ,当a=1 时也使用索引 当单独使用b=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时则不使用索引。
发表评论
文章已被作者锁定,不允许评论。
-
mysql 技术内幕学习
2018-10-22 12:42 606... -
mysql 全文索引(fulltext)学习
2018-10-15 11:09 550使用索引是数据库性能优化的必备技能之一。在MySQL数据库中, ... -
mysql cast和convert函数学习(将字符串转数字)
2018-08-03 11:12 1006MySQL 的CAST()和CONVERT()函数可用来获取一 ... -
mysql 外键锁机制
2014-12-09 10:25 1122在mysql的多个存储引擎中,innodb支持外键,但是由于外 ... -
mysql 常见函数总结
2014-11-06 19:41 732--获取当前的database se ... -
MySQL checksum了解
2014-11-05 19:51 507在主从复制中Checksum常常需要对某些重要的表进行一致性检 ... -
Mysql 常见命令总结
2014-11-04 20:01 3441.linux下启动mysql的命令: mysqladm ... -
MySql 数据库的创建和查看
2014-11-04 19:51 382使用SHOW语句找出在服务器上当前存在什么数据库 mys ... -
MySQL独立表空间VS共享表空间
2014-11-04 19:19 551在使用Innodb引擎时将要 ... -
mysql Multiversion Concurrency Control机制(mvcc)
2014-09-11 17:46 682在进行多事务 ... -
InnoDB Insert Buffer(插入缓冲)
2014-08-30 11:40 1129插入缓冲,并不是缓存的 ... -
mysql 存储过程例子
2014-08-28 11:36 541(1)循环遍历值 drop procedure if e ... -
MySQL if case语句使用总结
2014-08-26 19:47 563Mysql的if既可以作为表达式用,也可在存储过程中作为流程控 ... -
mysql 事务隔离级别
2014-08-25 12:00 667用户可以用SET TRANSACTION语句改变单个会话或者所 ... -
mysql cpu占100%调优案例
2014-08-23 21:44 501解决 MYSQL CPU 占用 100% 的经验总结 ... -
mysql cursor使用
2014-08-22 20:24 861一,什么是游标(cursor) 个人觉得就是一个cursor, ... -
mysql 查看表数据量
2014-08-22 16:55 482数据库中有几十上百张表,那么哪些表的数据量比较大呢,总不 ... -
mysql mysqldump导入导出
2014-08-22 16:32 1038我们来看几个常用用例: (1)导出整个数据库 mysqld ... -
mysql DATE_FORMAT() 函数
2014-08-22 16:23 458定义和用法 DATE_FORMAT() 函数用于以不同的格式显 ... -
MySQL性能调优 - Table_cache(table_open_cache)
2014-08-14 16:12 0table_cache是一个非常重 ...
相关推荐
MySQL索引优化是数据库性能提升的关键环节,本篇主要探讨了几个关于MySQL索引使用和优化的重要知识点。 首先,创建了一个名为`employees`的员工记录表,其中包含`id`(主键)、`name`、`age`、`position`和`hire_...
- **使用索引提示**:在某些复杂查询中,可以使用SQL的FORCE INDEX或USE INDEX提示强制MySQL使用特定的索引。 - **避免全表扫描**:通过优化查询语句,减少不必要的全表扫描,例如,避免在WHERE子句中使用NOT IN、!...
2. 使用 FORCE INDEX 语句强制使用索引。 3. 优化查询语句。 结论 ---------- 索引是 MySQL 中的一种加快数据检索速度的数据库对象。但是,如果不正确使用索引,可能会导致索引失效。因此,了解索引的使用原则和...
### MySQL索引分析和优化深度解析 #### 引言 MySQL数据库系统中,索引扮演着至关重要的角色,尤其在大数据量的环境下,其对查询性能的影响不可小觑。索引能够极大地加速数据检索速度,减少数据库服务器的负载,...
- 使用 `FORCE INDEX`, `USE INDEX`, 或 `IGNORE INDEX` 提示来强制或排除特定索引的使用。 通过深入了解这些索引使用规则,并结合实际场景应用,可以显著提升MySQL数据库的查询性能。记住,正确地创建和管理索引...
本篇文章将深入探讨在MySQL中`OR`操作符如何影响索引的使用,并提供一些优化查询的策略。 首先,我们需要了解索引的基本原理。在MySQL中,B-Tree索引是最常见的类型,用于单列和复合列。当一个查询只包含单个索引列...
1. **强制索引(FORCE INDEX)**: 当你希望数据库强制使用某个特定的索引而不是默认选择时,可以使用`FORCE INDEX`。例如: ```sql SELECT * FROM TABLE1 FORCE INDEX (FIELD1) … ``` 这条SQL语句将只使用...
### MySQL索引失效的11种情况 #### 知识点概述 在MySQL数据库中,索引是非常重要的优化工具之一,它可以显著加快数据检索的速度。然而,在某些情况下,索引可能会失效,导致查询效率降低。了解这些情况对于优化...
- **FORCE INDEX**:在必要时,可以使用FORCE INDEX强制MySQL使用特定索引,提高效率。 12. **维护与分析**: - **ANALYZE TABLE**:定期执行此命令更新表的统计信息。 - **慢查询日志**:监控慢查询日志,使用...
MySQL索引是数据库管理系统中用于加速数据检索的关键组件。它们通过创建指向表中实际数据页的逻辑指针,使得查询可以快速定位到所需的数据行,从而显著提高查询速度。MySQL支持两种主要类型的索引:哈希(Hash)和B...
而当我们使用`FORCE INDEX(a)`强制使用`a`索引时,扫描了10001行,执行时间降到了21毫秒,证明了优化器在未强制指定索引时做出了错误的选择。 优化器在判断扫描行数时,通常依赖于表的统计信息,如索引的...
- 在SQL语句中使用`FORCE INDEX`和`USE INDEX`提示强制使用特定索引。 **3. 存储引擎特性** - 熟悉不同存储引擎(如InnoDB和MyISAM)的特性,合理选择以适应不同的应用场景。 **4. 慢查询日志** - 启用慢查询...
对于查询优化,Oracle提供了丰富的提示(hints)来指导优化器,而MySQL使用force index/use index来优化查询。Oracle的查询缓存能够存储SQL语句的执行结果,而MySQL的查询缓存功能较弱,通常只能在存储过程中使用。 ...
可以通过调整统计信息、优化查询语句或使用索引提示(如FORCE INDEX)来影响优化器的决策。 为了监控索引的使用情况,可以使用`SHOW STATUS LIKE 'Handler_read%'`命令。`Handler_read_key`表示使用索引完成的读取...
在索引管理方面,本笔记介绍了 Innodb 索引的使用、Force index 的使用、alter ignore table 和 old_alter_table 的使用等。这些索引和命令可以帮助 MySQL DBA 优化查询性能,提高数据库的查询速度和数据安全性。 ...
比如,使用FORCE INDEX来强制使用某个索引,使用IGNORE INDEX来忽略某个索引,或者使用SQL_NO_CACHE来强制查询不使用查询缓存。 七、服务器配置优化 除了针对查询的优化外,MySQL服务器的配置也对性能有很大影响。...