mysql index
2016-04-11 12:40
609 查看
最近搞几次和mysql index有关系
1、如果存在就不插入,改为更新,update on exist,必须要设置index,否者语句会报错的
2、有些检索就是慢。。。。。
添加index的顺序为 col1, col2, col3 则下面几条语句会用到index
SELECT * FROM table_name WHERE col1='xx';
SELECT * FROM table_name WHERE col1='xx' AND col2='xx';
SELECT * FROM table_name WHERE col1='xx' AND col2='xx' AND col3='xx';
而不会用到index的查询语句如下:
SELECT * FROM table_name WHERE col3='xx' AND col2='xx';
SELECT * FROM table_name WHERE col2='xx';
SELECT * FROM table_name WHERE col3='xx';
总结起来就是,index是有一个顺序的,要用到index必须从index的开头起,中间连续不断,但不一定要到结尾。
(PS:如果发现在使用一些ORM的时候,没有利用到建立好的index,则可以查看orm对应执行的SQL语句,检查是否符合index使用规则)
1、如果存在就不插入,改为更新,update on exist,必须要设置index,否者语句会报错的
2、有些检索就是慢。。。。。
添加index的顺序为 col1, col2, col3 则下面几条语句会用到index
SELECT * FROM table_name WHERE col1='xx';
SELECT * FROM table_name WHERE col1='xx' AND col2='xx';
SELECT * FROM table_name WHERE col1='xx' AND col2='xx' AND col3='xx';
而不会用到index的查询语句如下:
SELECT * FROM table_name WHERE col3='xx' AND col2='xx';
SELECT * FROM table_name WHERE col2='xx';
SELECT * FROM table_name WHERE col3='xx';
总结起来就是,index是有一个顺序的,要用到index必须从index的开头起,中间连续不断,但不一定要到结尾。
(PS:如果发现在使用一些ORM的时候,没有利用到建立好的index,则可以查看orm对应执行的SQL语句,检查是否符合index使用规则)
相关文章推荐
- 详解MySQL数据库insert和update语句
- Mysql非安装版的安装使用相关问题
- 怎么样使用yum来安装mysql
- mysql命令
- mysql中修改命令结束符delimiter的用法
- MySQL5.7.11免安装版的安装和配置:解决MYSQL 服务无法启动问题
- mysql-删除重复的数据,重复的数据只保留一条
- MySQL 登录报错 1045
- Mysql性能优化一
- MySQL的log_bin和sql_log_bin 到底有什么区别?
- MySQL数据表的操作
- MySQL数据类型
- MySQL数据库操作
- mysql字段约束
- mysql 基于 master-master 的双机热备配置
- MySql存储过程—逻辑判断,条件控制,循环控制
- Mysql性能优化一
- linu系统开通mysql连接权限方法
- MySQL基本用法
- MySQL