首页 / MYSQL / MySQL常见问题概览
MySQL常见问题概览
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL常见问题概览,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1473字,纯文字阅读大概需要3分钟。
内容图文
![MySQL常见问题概览](/upload/InfoBanner/zyjiaocheng/483/cca37993db4d42a0a0f6debc9c7adbde.jpg)
最近看了江承尧老师的《MySQL技术内幕:sql编程》,同时结合自己工作中遇到的一些问题,从工程性能以及MySQL本身实际应用出发,总结了一些通过子查询解决的常见问题
1 行号
MySQL数据库在行号方面的支持并不是十分友好,没有像其他数据库一样提供类似row_number解决方案
demo1:select empid ,(select count(1) from sales AS t2 where t2.empid<=t1.empid) as rownum from salas as t2
通过子查询解决直观易懂,但是性能很差,每条记录都需要在相关子查询上进行一次查找,生成笛卡尔积。扫描成本0(N^2)
select emp_no,dept_no,@a:=@a+1 as row_num form dept_emp,(select @a:=0) t 。扫描成本0(N),所以使用交叉连接(cross join)生成行号效率更高
2 分区
分区和分表相似,都是按照规则分解表。不同在于分表将大表分解为若干个独立的实体表,而分区是将数据分段划分在多个位置存放,可以是同一块磁盘也可以在不同的机器。分区后,表面上还是一张表,但数据散列到多个位置了。app读写的时候操作的还是大表名字,db自动去组织分区的数据。相对于分表,不需要创建子表和配置表之间的union关系。分区主要是通过在集合中进行分组操作,再对集合添加分区列来实现的,在子查询的解决方案中,通过在子查询内部添加相关性,并匹配内部表和外部表的分区列来实现分区。
这里介绍一种基于临时表的分区解决方案:可以在临时表中创建一个自增长的序列,按照分区的要求将数据插入临时表,需要借助嵌套查询解决问题。
MySQL常见问题概览
标签:form row from 组织 操作 number 数据库 其他 查询
本文系统来源:http://www.cnblogs.com/stop-Word/p/6920256.html
内容总结
以上是互联网集市为您收集整理的MySQL常见问题概览全部内容,希望文章能够帮你解决MySQL常见问题概览所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。