mysql重点--正确使用

1.一些错误情况

数据库表中添加索引后确实会让查询速度起飞,但前提必须是正确的使用索引来查询,如果以错误的方式使用,则即使建立索引也会不奏效。
即使建立索引,索引也不会生效:

 1 - like ‘%xx‘
 2     select * from tb1 where name like ‘%cn‘;
 3 - 使用函数
 4     select * from tb1 where reverse(name) = ‘wupeiqi‘;
 5 - or
 6     select * from tb1 where nid = 1 or email = ‘[email protected]‘;
 7     特别的:当or条件中有未建立索引的列才失效,以下会走索引
 8             select * from tb1 where nid = 1 or name = ‘seven‘;
 9             select * from tb1 where nid = 1 or email = ‘[email protected]‘ and name = ‘alex‘
10 - 类型不一致
11     如果列是字符串类型,传入条件是必须用引号引起来,不然...
12     select * from tb1 where name = 999;
13 - !=
14     select * from tb1 where name != ‘alex‘
15     特别的:如果是主键,则还是会走索引
16         select * from tb1 where nid != 123
17 - >
18     select * from tb1 where name > ‘alex‘
19     特别的:如果是主键或索引是整数类型,则还是会走索引
20         select * from tb1 where nid > 123
21         select * from tb1 where num > 123
22 - order by
23     select email from tb1 order by name desc;
24     当根据索引排序时候,选择的映射如果不是索引,则不走索引
25     特别的:如果对主键排序,则还是走索引:
26         select * from tb1 order by nid desc;
27
28 - 组合索引最左前缀
29     如果组合索引为:(name,email)
30     name and email       -- 使用索引
31     name                 -- 使用索引
32     email                -- 不使用索引

2.其他注意事项

- 避免使用select *

count(1)或count(列) 代替 count(*)

- 创建表时尽量时 char 代替 varchar

- 表的字段顺序固定长度的字段优先

- 组合索引代替多个单列索引(经常使用多个条件查询时)

- 尽量使用短索引

- 使用连接(JOIN)来代替子查询(Sub-Queries)

- 连表时注意条件类型需一致

- 索引散列值(重复少)不适合建索引,例:性别不适合

3.limit分页

这里只做简单表述。在使用

select sth from table_name limit 0,10;

过程中发现当数据量大的时候。比如limit 24322,10需要ALL遍历到两万条后才会拿到

所需要的数据。需要的时间非常长,优化为:

select * from bigdata where nid > 3000 limit 3000,10;

这样会进行range查询。速度非常快,所做的仅仅是记录下上次查询过的nid就行。

同样在直接输入页数比如客户输入4989,怎么样处理?

利用B-tree数组来先粗略定位页数也许可行。

时间: 2024-08-06 20:08:17

mysql重点--正确使用的相关文章

Python 操作 MySQL 的正确姿势

欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:邵建永 使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy. Python-MySQL资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,只支持Python2,不支持Python3. PyMySQL为替代Python-MySQL而生,纯python打造,接口与Pyt

mysql重点、视图、事务、备份还原【mysqldump】、mysql编程【触发器、存储函数、存储过程】、存储引擎

1.删除数据需要注意的问题[删除记录delete] 删除数据本身没有太多说的,还是删除表的时候有truncate用法 delete from是逐条删除记录[加不加条件全删,效率低,在删除表方面] truncate是重建表[删除表时效率高] 2.修改数据[update] [一下重点性能] 3.视图(view)[是一张虚拟的表:使客户端在虚拟的表中进行操作] 视图就是一条查询语句的结果[因为查询之后的结果本身就会形成一张表给客户端][视图使用到mysql的内置机制] create view 视图名

[Logback+slf4j] Mysql DBAppender 正确配置方法 以及错误处理

第一必要条件:jar 包 所需要的包: logback-core-0.9.8.jar logback-classic-0.9.8.jar slf4j-api-1.6.8.jar 写该文时,最新版本为 logback的版本为1.1.2. 对应的Slf4j-api 为 1.7.6 (两种配方都可以) 第二必要条件:数据库表创建脚本. 包括stackoverflow上的很多朋友在内的coder都被官方 http://logback.qos.ch/manual/appenders.html 中提到的ge

【MySQL】MySQL使用正确密码却认证失败问题解决方法

前言:笔者根据 #MySQL忘记密码,重置密码方法 ,修改密码后.使用修改后的正确密码怎么也登录不上数据库,然后经过以下方法,重新登录数据库. 1.确认MySQL安装目录下没有data(Data)文件夹,如果有就删掉. 确认已经删除了data文件夹如图 2.以管理员身份打开cmd,并切换到自己磁盘中MySQL文件的bin目录下.(一般是 ...xxx\MySQL\MySQL Server 8.0\bin\ 目录) 3.初始化MySQL服务,需要在cmd窗口中输入命令:mysqld --initi

ubuntu上安装mysql的正确步骤

1.在Ubuntu software Center中下载mysql:[注:mysql下载下来后好像就安装上了] 2.使用命令检查mysql是否已安装上: 2.1 运行sudo netstat -tap | grep mysql命令查看是否有Mysql的端口 2.2 若已经安装上了这会出现以下结果: 3.若mysql已经安装上了,则在命令终端上输入mysql -u root -p,启动mysql:然后输入密码即可登录mysql数据库: 4.若在安装mysql时没有设置初始密码,则可以通过以下命令来

mySQL 重点

自己在学习的过程中,总结了一些知识点:1. 安装mysql:     google it.2. 新建database,table: create database database_name;create table table_name; 3. 查看现有database,table,以及table中各个column之间的关系 show databases;use database_name;show tables;desc table_name; 4. 修改现有table     alter

阿里云centos7使用yum安装mysql的正确姿势

yum快速安装mysql 新增yum源 rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 查看可用的mysql版本(直接略过) yum repolist enabled | grep "mysql.*-community.*" 导入 yum -y install mysql-community-server 加入开机启动 systemctl enable mysqld 启动mysql s

HeadFirst PHP&MySQL 重点知识点记录(二)

1.foreach语句用来循环处理一个数组,一次处理一个元素,而无需使用测试条件.在循环内部,可以访问这个数组的各个元素.(这点和JS的差不多)2.内置PHP isset()函数查看一个变量是否存在,这是指它是否已经赋值.empty()会确定一个变量是否包含空值(0.空串.false或NULL).3.include,include_once,require,require_once,这类PHP语句允许在应用中的多个脚本文件之间共享脚本代码,消除重复代码,使代码易于维护.4.$FILES 这个内置

ubuntu 安装 mysql 的正确姿势

1.下载官方提供的mysql-apt-config.deb包进行APT源设置,下载地址:https://dev.mysql.com/downloads/repo/apt/ 2. // 将 mysql-apt-config_0.8.6-1_all.deb 上传到/opt/ // 执行以下命令 sudo dpkg -i mysql-apt-config_0.8.6-1_all.deb 3.  运行更新命令 sudo apt-get update 4. 安装 sudo apt-get install