mysql 制限効率:
select `id`,`title`,`describle`,`created` from myvbga_table where click = xxx limit offset, limit; //总结:如果没有blob/text字段,单行记录比较小,可以把 limit 设大点,会加快速度。
limit offset 値が比較的小さい:
select `id`,`title`,`describle`,`created` from vbga_table limit 10,10 //多次运行,时间保持在0.0004-0.0005之间 Select `id`,`title`,`describle`,`created` From vbga_table Where click >=(Select click From vbga_table Order By click limit 10,1) limit 10 //多次运行,时间保持在0.0005-0.0006之间,主要是0.0006
limit offset 値が比較的大きい:
select `id`,`title`,`describle`,`created` from vbga_table limit 10000,10 //多次运行,时间保持在0.0187左右 Select `id`,`title`,`describle`,`created` From vbga_table Where click >=(Select click From vbga_table Order By click limit 10000,1) limit 10
//複数回実行しても、時間は約 0.0061 のままで、前の 1/3 にすぎません。オフセットが大きいほど、後者の方が優れていると予想できます。
Mysql 制限の使用法:
LIMIT 句を使用して、SELECT ステートメントに指定された数のレコードを強制的に返すことができます
SELECT `id`,`title`,`describle`,`created` FROM vbga_table LIMIT [offset,] rows | rows OFFSET offset mysql> SELECT `id`,`title`,`describle`,`created` FROM vbga_table LIMIT 5,10; // 检索记录行 6-15 //为了检索从某一个偏移量到记录集的结束所有的记录行, 可以指定第二个参数为 -1: mysql> SELECT `id`,`title`,`describle`,`created` FROM vbga_table LIMIT 95,-1; // 检索记录行 96-last. //如果只给定一个参数,它表示返回最大的记录行数目: mysql> SELECT `id`,`title`,`describle`,`created` FROM vbga_table LIMIT 5; //检索前 5 个记录行 //换句话说,LIMIT n 等价于 LIMIT 0,n。
mysql 制限サブクエリの使用例:
select `id`,`title`,`describle`,`created` from vbga_table where id in (select t.id from (select `id`,`title`,`describle`,`created` from vbga_table limit 10)as t)
mysql 制限オフセットの使用例:
SELECT keyword FROM `zjoe_table` WHERE advertiserid='59' order by keyword LIMIT 2 OFFSET 1; //比如这个SQL ,limit后面跟的是2条数据,offset后面是从第1条开始读取
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
SELECT `keyword` FROM `zjoe_table` WHERE Advertiserid='59' ORDER BY キーワード LIMIT 2,1; //そして、この SQL は、制限の後に始まります。 2番目の項目から読み出し、1つの情報を読み取ります。
mysqlストアドプロシージャでのlimit変数の使用
CREATE PROCEDURE Getble_table(_id int,_limit int) BEGIN PREPARE s1 FROM 'SELECT `id`,`title`,`describle`,`created` FROM ble_table WHERE Cityid=? ORDER BY sendtime DESC LIMIT ?'; set @a=_id; set @b=_limit; EXECUTE s1 USING @a,@b; DEALLOCATE PREPARE s1; END;
注: パラメータを渡す必要がある場合は「?」記号を使用する必要があり、最初の FRom の後のステートメントは '' で囲む必要があります。
上記は mysql の内容、制限、および高度な使用法です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。