本文目录一览:
mysql 每次查询一条数据查10次 和一次查询10条数据效率有多少差距
臆测一下,十倍。
为什么说是臆测呢,因为我猜这并不是问很极端的情况。
详细说来,拆解每个查询消耗的时间,并不是每个步骤都与行数有关。
查1行,查10行,网络通讯都是占大部分时间,所以是10倍。
但是,如果你一次查10w行,并不会比10w次1行快10w倍,因为大数据量查询本来就慢。
延伸一下,以前我们做过一个优化,又来用这个case连续讲了4-5年。
这是一个UPDATE table SET col = col + N WHERE key = ?的查询,大概有5k QPS左右,跑不动。
改成了UPDATE table SET col = col + 1 WHERE key IN (?, ?, ?..... )的样子,数据库CPU从40%降到1%。
这个改变没有改变任何索引使用和网络传输,是不常见的,解析SQL瓶颈。
写这个例子,是要说,优化要根据具体情况分析,数据量和使用情况都会影响结论。
asp + mysql 如何显示10条记录集
mysql 有更方便的 limit m,n
select * from table limit 0,10;
就是10条
select * from table limit 10,10;
第11条到第20条
mysql 查询全表某字段值最大的10条数据
select * from 表 order by 要最大值的字段 desc limit 0,10
FILE: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
数据库/数据表/数据列权限:
ALTER: 修改已存在的数据表(例如增加/删除列)和索引。
CREATE: 建立新的数据库或数据表。
DELETE: 删除表的记录。
DROP: 删除数据表或数据库。
INDEX: 建立或删除索引。
INSERT: 增加表的记录。
SELECT: 显示/搜索表的记录。
UPDATE: 修改表中已存在的记录。
特别的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录–其它什么也不允许做。
一、 简单查询
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email。代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三'
(一) 选择列表
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列
例如,下面语句显示testtable表中所有列的数据:
复制内容到剪贴板
代码:SELECT * FROM testtable
2、选择部分列并指定它们的显示次序
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:
复制内容到剪贴板
代码:SELECT nickname,email FROM testtable
3、更改列标题
在选择列表中,可重新指定列标题。定义格式为:
列标题=列名
列名 列标题
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列
标题:
复制内容到剪贴板
代码:SELECT 昵称=nickname,电子邮件=email FROM testtable
4、删除重复行
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认
为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。
5、限制返回的行数
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是
表示一百分数,指定返回的行数等于总行数的百分之几。
例如:
复制内容到剪贴板
代码:SELECT TOP 2 * FROM `testtable`
复制内容到剪贴板
代码:SELECT TOP 20 PERCENT * FROM `testtable`
(二) FROM子句
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应
使用下面语句格式加以限定:
复制内容到剪贴板
代码:SELECT `username`,citytable.cityid
FROM `usertable`,`citytable`
WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:
复制内容到剪贴板
代码:表名 as 别名
表名 别名例如上面语句可用表的别名格式表示为:
复制内容到剪贴板
代码:SELECT `username`,b.cityid
FROM usertable a,citytable b
WHERE a.cityid=b.cityidSELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。
例如:
复制内容到剪贴板
代码:SELECT a.au_fname+a.au_lname
FROM authors a,titleauthor ta
(SELECT `title_id`,`title`
FROM `titles`
WHERE ` ytd_sales`10000
) AS t
WHERE a.au_id=ta.au_id
AND ta.title_id=t.title_id此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。