mysql limit分页一般查多少页,limit多少才会有性能问题?
一般文章分页都是 limit 20 条数据左右,我不知道为什么,limit 最大的性能瓶颈在哪里,最大的值在哪里,一次性取5000条有没有问题,10000条呢,到底多少合适,好不好,每次分页取20条太麻烦了。
一直以来我有一个问题,困惑:
1:什么时候要分页,
2:什么时候要有limit限制,
3:什么时候可以直接痛快的获取全部数据
比如饿了么餐厅页面,餐厅可能有很多分类,每个分类下面还有很多菜品,那么这个时候它是直接获取全部数据吗,没有limit限制吗?
假使分类数量不多,不需要limit可以痛快的全部取出,但是每个分类下面的菜品数量可能有点多(打个比方,我也不知道有多少)那么取每个下面的菜品时需要使用limit吗,如果要limit那么取多少条呢,如果这样做那么不是可能会有个“点击查看更多餐品吗”,那不要做个AJAX取余下的数据啊,取余下的数据该怎么取呢?
大概概念是这样,但是我还是很晕,希望大神结合我说的实例指点一下困惑,谢谢了!
回复内容:
一般文章分页都是 limit 20 条数据左右,我不知道为什么,limit 最大的性能瓶颈在哪里,最大的值在哪里,一次性取5000条有没有问题,10000条呢,到底多少合适,好不好,每次分页取20条太麻烦了。
一直以来我有一个问题,困惑:
1:什么时候要分页,
2:什么时候要有limit限制,
3:什么时候可以直接痛快的获取全部数据
比如饿了么餐厅页面,餐厅可能有很多分类,每个分类下面还有很多菜品,那么这个时候它是直接获取全部数据吗,没有limit限制吗?
假使分类数量不多,不需要limit可以痛快的全部取出,但是每个分类下面的菜品数量可能有点多(打个比方,我也不知道有多少)那么取每个下面的菜品时需要使用limit吗,如果要limit那么取多少条呢,如果这样做那么不是可能会有个“点击查看更多餐品吗”,那不要做个AJAX取余下的数据啊,取余下的数据该怎么取呢?
大概概念是这样,但是我还是很晕,希望大神结合我说的实例指点一下困惑,谢谢了!
什么时候要分页?
当表中数据量大的时候就应该考虑分页什么时候要有limit限制?
同上什么时候可以直接痛快的获取全部数据?
当表中数据量不大的时候可以一次取所有数据
读取20条数据和读取5000条乃至更多的数据,性能上肯定是20条更快的。而且这个快,不光体现在数据库上,还体现在网络上的传输过程中(数据量小传得当然快),页面的渲染中(数据量少展示页面就更快)。另外,即使你一次展示5000条数据,但用户绝大多数情况下也就能看到二三十条,并不会将5000条全看完,所以多余的数据也就是浪费的。
如果是小型元素(比如只有文字,或者信息量较少的元素),单页量设置在100以下。如果是大型元素(信息量大,带图文一类的),单页量最好控制在30以下。
够用就好。取多了浪费。
用户只看20条,你取21条都多余。
返回几百条上千条甚至全部,那影响就大了。
首先数据库查询慢,占用更多的服务器资源,查出结果后传输慢,占用更多的带宽资源,其次渲染慢,浏览器也会崩溃。
不用想太多了,这个只是产品定下来的而已,通常最多就20~30条,展示多少条完全是看美观而已。当然,你说的 什么时候可以直接痛快的获取全部数据。这个情况是绝对不可能存在的,怎么可能会获取全部的数据呢,如果文章量达到了千万级怎么办,这取出来也太久了吧。
分页20,而为什么不是5000,10000,主要还是一楼说的,用不到,用不到,用不到那么多
数据库一般有个配置可以配置你每次查询请求返回数据的大小上限,一般情况下,是不会超出这个上限的.只要不超出这个上限,其实怎么拿都是可以的.但是,一般采用按需获取原则,你原则上没有必要拿这么多就不需要拿这么多,毕竟拿得多,你对于网卡的带宽是有占用的,我举例,假设你是千M网卡,limit 1W消耗的带宽是10K,那么从网卡带宽的角度来说(先不说数据库性能问题)你能够极限的QPS也就是1000M/10K=10W QPS.当然如果你网卡可以上万兆网卡.另外对于用户端来说,每次请求获取更多的数据,实际上也是降低了请求到达的速度.
网络传输消耗带宽
网络传输消耗带宽
网络传输消耗带宽
重要事情说3遍

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP는 MySQLI 및 PDO 확장 기능을 사용하여 데이터베이스 작업 및 서버 측 로직 프로세싱에서 상호 작용하고 세션 관리와 같은 기능을 통해 서버 측로 로직을 처리합니다. 1) MySQLI 또는 PDO를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 2) 세션 관리 및 기타 기능을 통해 HTTP 요청 및 사용자 상태를 처리합니다. 3) 트랜잭션을 사용하여 데이터베이스 작업의 원자력을 보장하십시오. 4) SQL 주입 방지, 디버깅을 위해 예외 처리 및 폐쇄 연결을 사용하십시오. 5) 인덱싱 및 캐시를 통해 성능을 최적화하고, 읽을 수있는 코드를 작성하고, 오류 처리를 수행하십시오.

Docker에서 MySQL을 시작하는 프로세스는 다음 단계로 구성됩니다. MySQL 이미지를 가져와 컨테이너를 작성하고 시작하고 루트 사용자 암호를 설정하고 포트 확인 연결을 매핑하고 데이터베이스를 작성하고 사용자는 데이터베이스에 모든 권한을 부여합니다.

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.
