mysql 分页效率_MYSql分页查询效率提高

CREATE TABLE `goods` (

`UrlId` char(100) CHARACTER SET utf8 NOT NULL,

`Title` varchar(100) CHARACTER SET utf8 DEFAULT NULL,

`CreateTime` char(30) CHARACTER SET utf8 DEFAULT NULL,

PRIMARY KEY (`UrlId`)

)

上面是本人表格的结构,本人的程序是用来做搜索引擎的,UrlId用来存储网址,title存标题,UrlId网址是主键唯一,

原因是是做搜索引擎的缘故,所以数据极其庞大,千万以上吧,之前分页看到都是用Limite,但是听说数据超大的时候回产生效率极其低下的情况,本人看到其他解决方案就是

SELECT * FROM goods WHERE id >= (SELECT id FROM table LIMIT 1000000, 1) LIMIT 10;

都是有一个对那个自增的ID进行限制,可是本人的主键是UrlId 是字符串,不是普通的ID数字,所以这个有点乏力,希望大家能帮忙写出解决方案(原因是本人擅长前台,而且之前是sqlserver 的,所以代码不擅长,最好有具体的代码,谢谢了。)

解决方案

50

另外,把代码改为:

SELECT * FROM goods WHERE UrlId in (SELECT UrlId FROM table LIMIT 1000000, 10) ;

15

引用 8 楼 telwo 的回复:

Quote: 引用 4 楼 yupeigu 的回复:

另外,把代码改为:

SELECT * FROM goods WHERE UrlId in (SELECT UrlId FROM table LIMIT 1000000, 10) ;

另外本人还有一个排序的情况就是,本人为了让本人的网页显示每时每刻都在刷新,本人会按照时间排序,所以首页显示的分页情况,都是按时间最近插入的数据,就是还会order  by  CreateTime  这样可以怎么样做呢

假如要按照createtime来排序,可以这样创建索引:

create index idx_googs_createtime on (createtime) 就可以了

至于代码,和上面的一样。

另外,你说的假如增加了自增id,还需要按照 url来进行查询,这个也是可以的,只要给urlid再创建一个索引就可以,那么就是这么创建:

create index idx_googs_createtime_urlid on (createtime,UrlId)

30

引用 10 楼 yupeigu 的回复:

Quote: 引用 8 楼 telwo 的回复:

Quote: 引用 4 楼 yupeigu 的回复:

另外,把代码改为:

SELECT * FROM goods WHERE UrlId in (SELECT UrlId FROM table LIMIT 1000000, 10) ;

另外本人还有一个排序的情况就是,本人为了让本人的网页显示每时每刻都在刷新,本人会按照时间排序,所以首页显示的分页情况,都是按时间最近插入的数据,就是还会order  by  CreateTime  这样可以怎么样做呢

假如要按照createtime来排序,可以这样创建索引:

create index idx_googs_createtime on (createtime) 就可以了

至于代码,和上面的一样。

另外,你说的假如增加了自增id,还需要按照 url来进行查询,这个也是可以的,只要给urlid再创建一个索引就可以,那么就是这么创建:

create index idx_googs_createtime_urlid on (createtime,UrlId)

对的,只是增加一列计数而已,对查询不影响。

5

還是建議用自增或本人生成的ID做主鍵。

主鍵相當於唯一索引,它是要占用額外的空間的,何況你這還是char(100)的大小。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明MYSql分页查询效率提高!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

json阅读器_Flutter小说阅读器系列一:使用Bloc模式获取起点小说关键字提示

Bloc模式下的小说关键字提示效果图最近难得有些闲暇时间,所以我又打算做一个小说阅读器,以前倒是用RNGolang写了一个,不过当时太过放飞自我导致自己看起来都很费力,这次我准备换成Flutter试一下。先简单将小说阅读器分为以下几个部…

python获取mysql中的数据供js调用_详解js文件通过python访问数据库方法

我来教你 js文件怎么通过python访问数据库,希望能够为你带来帮助。 1、如果是要提交表单内容给 服务器的 python 处理,那么只需要在表单 里面的 action 填写服务端的处理路由就可以了。或者用 指向服务器路由get querystring。前端方面不需要python啊。…

python 初始化一个4维向量_看图学NumPy:掌握n维数组基础知识点,看这一篇就够了...

摘要:NumPy是Python的最重要的扩展程序库之一,也是入门机器学习编程的必备工具。国外有位程序员讲NumPy的基本运算以图解的方式写下来,让学习过程变得轻松有趣。 NumPy是Python的最重要的扩展程序库之一,也是入门机器学习编程的必备工具。然而对初学者来说,NumPy的大量运算…

fasterrcnn tensorflow代码详解_pytorch目标检测代码的一些bug调试

这几天一直在做调包侠,是时候来总结总结了。记录一些我所遇到的不常见的问题。faster rcnn:参考代码:jwyang/faster-rcnn.pytorch​github.compytorch代码调试,相较于tensorflow的版本要友好一些,不用创建软连接啥的,数…

win8 mysql6_Win8系统 MySQL 6.0 安装图解

Win8系统 MySQL 6.0 安装图解(作者:wanghui2015/04/08)1、首先双击mysql-6.0.10-msi,会出现如下图所示界面。点击next;2、出现如下界面:这三个为选择安装类型,新手可以选择Typical或Complete就可以了。咱们为了看一下安…

python 对比文件内容差异_使用Python来比较文件夹并提取差异部分

在客户那边建库,需要把几百个G几十万个文件导入到Oracle里,好不容易导完了才发现中间缺了好几大块数据,约有四分之一吧,郁闷得很。 数据是客户从第三方买的,据客户分析是拷贝过来的时候有部分数据漏掉了,但…

mysql查询缓存到redis_php查询mysql并缓存到redis

首先安装redis,并在php环境中开启php_redis扩展。下面不多说了,直接上代码$redis new redis();$redis->connect(127.0.0.1, 6379);$blog $redis->get(redisrow);//如果$blog数组为空,则去数据库中查询,并加入到redis中if(…

python画锯齿波_用Python控制硬件35-自制二三十元成本的信号测量采集控制系统

如前篇所介绍,用Shell Lab测试台软件配合之前介绍的任意款实验板,都能方便地实现ADC电压测量,但遇到两个问题:示例代码虽然众多,但大都默认ShellLab类型的控制器,需要手动改为Mcush.Mcush类型才能运行&…

java连接hbase_HBase实战 | 05405.15.0Spark2使用HBaseSpark访问HBase

转载自微信公众号Hadoop实操温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:https://github.com/fayson/cdhproject提示:代码块部分可以左右滑动查看噢1文章编写目的越…

python归并排序算法实现_python算法实现系列-归并排序

效率比较高的归并排序&#xff0c; 有两种方式。1.使用递归def merge(left, right):result []i,j 0, 0while i < len(left) and j < len(right):if left[i] < right[j]:result.append(left[i])i 1else:result.append(right[j])j 1result left[i:]result right[j…

python编程教程交互式联系_Python Koans交互式教程

Python Koans是一个学习Python编程语言的交互式教程&#xff0c;通过解决当中的问题来更深刻地理解Python。本系列文章为在此项目的学习中的问题解决方案及思考Lesson 2 String字符串是 Python 中最常用的数据类型。我们可以使用引号’或”来创建字符串。about_strings.py#!/us…

wxpython使用简介_wxpython简介

Python​ Python是一种成功的脚本语言&#xff0c;它最初是由Guido van Rossum开发的。它于1991年首次发布。Python的灵感来自于ABC和Haskell编程语言。Python是一种高级的、通用的、多平台的、解释型的语言。有人更喜欢称它为动态语言。它很容易学习。Python是一种极简主义语言…

计算机科学与python编程导论_计算机科学入门和使用Python编程

你将学到什么A Notion of computationThe Python programming languageSome simple algorithmsTesting and debuggingAn informal introduction to algorithmic complexityData structures课程概况This course is the first of a two-course sequence: Introduction to Compute…

电脑4次连续故障音_格力空调电子膨胀阀故障判定与“E6”处理方法

一、电子膨胀阀常见故障原因电器电子膨胀阀是一种利用电子控制器通过电缆向线圈发出脉冲控制信号&#xff0c;控制施加于膨胀阀上的电压或电流&#xff0c;从而控制阀针的动作实现阀口流通面积改变达到流量自动调节目的的节流器件&#xff0c;是空调器的重要部件之一&#xff0…

mysql+性能+计算列_MYSQL性能优化的最佳20+条经验

当你查询表的有些时候&#xff0c;你已经知道结果只会有一条结果&#xff0c;但因为你可能需要去fetch游标&#xff0c;或是你也许会去检查返回的记录数。在这种情况下&#xff0c;加上 LIMIT 1 可以增加性能。这样一样&#xff0c;MySQL数据库引擎会在找到一条数据后停止搜索&…

ClickHouse 入门与实战教程

目录 1. ClickHouse 简介 什么是 ClickHouse&#xff1f; ClickHouse 的优势和特点 适用场景 2. 安装 ClickHouse 3. ClickHouse 的基本概念 4. ClickHouse 的基本操作 创建数据库和表、插入和查询数据 使用 MergeTree 引擎处理时序数据 管理分区 创建带有分区的 Mer…

python脚本自动消除安卓版_python脚本中appium的自启动自关闭

前提&#xff1a;已安装appium命令行版本将appium的启动及其关闭直接写在脚本中&#xff0c;运行起来会方便很多创建startAppiumServer.bat 和 stopAppiumServer.bat文件&#xff0c;然后文件存放在运行的包下面注意点&#xff1a;调用startAppiumServer.bat 和stopAppiumServe…

sid图像数据_实战材料信息学:使用skimage处理扫描电子显微镜(SEM)图像数据

算开个头&#xff0c;不算特别实战扫描电子显微镜&#xff0c;材料开发不可缺少的分析仪器。原理就不详述了。材料的形貌&#xff0c;具体长什么样的都可以看得很清楚。材料表面的形貌很多情况下会和材料的物性产生直接关系&#xff0c;比如说可以从SEM看出粒子的直径分布&…

python生成器 图片分类_Python内置类型(6)——生成器

上节内容说到Python的for语句循环本质上就是通过调用Iterable可迭代对象的__iter()__方法获得一个Iterator迭代器对象,然后不断调用Iterator迭代器对象__next()__方法实现的。Iterator迭代器对象则是一个需要实现__iter__()和__next__()两个迭代器协议方法的对象。python中生成…

java 把方法当参数传递_java 中 如何将“一个类的方法 ”作为参数传到“另一个类的方法”中...

展开全部在java中这是没有办法做到的&#xff0c;因e5a48de588b662616964757a686964616f31333337396336为java不是函数式编程语言&#xff0c;不过可以通过传递一个接口来实现。下面解说java如何模拟&#xff1a;先定义一个接口:interface MethodInterface{//这个方法假如就是你…