sql优化神器、索引

用法:

explain  select * from ems_expense_feedback  where expenseId=333

rows列 表示 sql执行时检索次数,越小越好

根据上面的结果再适当加上索引

1.添加PRIMARY KEY(主键索引) 
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 
2.添加UNIQUE(唯一索引) 
mysql>ALTER TABLE `table_name` ADD UNIQUE ( 
`column` 

3.添加INDEX(普通索引) 
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 
4.添加FULLTEXT(全文索引) 
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 
5.添加多列索引 
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

时间: 2024-11-10 13:14:14

sql优化神器、索引的相关文章

SQL优化之索引优化

这篇文章为Qi总结,如果有不对的希望可以指出. 初级开发人员,一般是接触不到架构,大数据这样的优化方案,而初级开发人员所做的优化一般只有SQl优化.  一·举一个小例子: 在网站中,一般会设计到登录注册,但是登录方式出现了很多种,例如:用户名登录,手机登录,邮箱登陆,微信,微博,QQ,--等等很多种登录方式. 这么多登录方式如果放入一张表中,在编写SQL语句中会出现很多问题: 如果放入一张表中登录方式的SQL语句应该是这样的: select * from user where uname='zh

SQL优化避免索引失效

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放

SQL优化以及索引

什么是索引: 索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容. 建立索引合适的列 经常用作where条件的列,order by排序的列 数据列不重复而且并不是唯一的几个值 不被经常修改的列 普通查询 SELECT * FROM emp WHERE empno=100002 查询缓存 SHOW GLOBAL VARIABLES LIKE '%query_cache%' 表的引擎 innodb:第一次查询走数据文件,再次回走缓存 SHOW VARIABLES LIKE '%sto

优化SQL之最佳索引

SQL优化工具Tosska SQL Tuning Expert for Oracle,帮助SQL开发人员解决SQL性能问题. 本工具主要创始人Richard To, 资深ITPUB元老,从1996年开始设计SQL优化工具,拥有超过20年的SQL优化经验. 工具已经从最初的1.0, 1.1,1.2,逐步演化到了3.0.  最新版本主要包含3个功能: 1. 为单条SQL产生等价SQL, 并找出最快的等价SQL; 2. 为单条SQL建议最佳索引: 3. SQL性能报表: 官网下载 https://ww

Oracle 建立索引及SQL优化

Oracle 建立索引及SQL优化 数据库索引: 索引有单列索引 复合索引之说 如何某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访问速度. 建设原则: 1.索引应该经常建在Where 子句经常用到的列上.如果某个大表经常使用某个字段进行查询,并且检索行数小于总表行数的5%.则应该考虑. 2.对于两表连接的字段,应该建立索引.如果经常在某表的一个字段进行Order By 则也经过进行索引. 3.不应该在小表上建设索引. 优缺点:

MySQL索引原理及SQL优化

原文:MySQL索引原理及SQL优化 目录 索引(Index) 索引的原理 b+树 MySQL如何使用索引 如何优化 索引虽好,不可滥用 如何验证索引使用情况? SQL优化 explain查询执行计划 id select_type table type possible_keys key key_len ref rows Extra 优化数据库结构 优化数据大小 优化数据类型 索引(Index) MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构.索引的建立对

SQL优化的四个方面,缓存,表结构,索引,SQL语句

一,缓存 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所以,要优化数据库,首先第一步需要优化的就是 IO,尽可能将磁盘IO转化为内存IO. query_cache_size/query_cache_type (global) Query cache 作用于整个 MySQL Instance,主要用来缓存 MySQL 中的 ResultSet,也就是一条S

SQL通用优化方案(where优化、索引优化、分页优化、事务优化、临时表优化)

SQL通用优化方案:1. 使用参数化查询:防止SQL注入,预编译SQL命令提高效率2. 去掉不必要的查询和搜索字段:其实在项目的实际应用中,很多查询条件是可有可无的,能从源头上避免的多余功能尽量砍掉,这是最简单粗暴的解决方案.3. 选择最有效率的表名顺序: 数据库的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表放在最后,如果有3个以上的表连接查询,那就需要选择那个被其他表所引用的表放在最后.

索引与sql优化问题汇总

各位亲爱的云友, 非常感谢大家踊跃参加DBA专家门诊一期:索引与sql优化,很多云友都提出了自己的问题,门诊主任医师玄惭对大家提的问题一一作了解答.现已整理好这些问题,分享在此,欢迎来拿,绝对干货! 篇幅较长,耐心细看! 我们将赠送每位提问者每人一本凌云杂志第四期,请各位以论坛短消息形式将姓名.电话.地址发送给管理员xiaofanqie. 啊里新人(Q1):索引我一般都是只有主键,这玩意儿,是不是越少越好? 玄惭(A1):在日常的业务开发中,常见使用到索引的地方大概有两类: 第一类.做业务约束需