美文网首页
mysql一些tips

mysql一些tips

作者: BeYearn | 来源:发表于2019-01-04 11:30 被阅读0次
  1. varchar(50)中50的涵义最多存放50个字符. 所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节. 最多存储2^16−1 65533个字节(起始结束各占一字节)

varchar则是一种可变长度的类型. varchar(50)和(200)存储hello所占空间一样,但后者在排序时会消耗更多内存.

char的上限为255字节,varchar的上限65535字节,text的上限为65535字节。

varchar(M),如果使用UTF-8编码,一个字符占3个字节,那么M最大为21844.

存储时超过char和varchar的n设置后,字符串会被截断。

定义时 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。

char(n)不管实际value都会占用n个字符的空间. char在存储的时候会截断尾部的空格,varchar和text不会。

  1. int(n)中不论n指定为多少,范围都一样-2312^31-1,都能插入9位数字。也就是说 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间.

n只是一个显示宽度而已. 当创建表时设置了zerofill参数

create table tb2 (id1 int(3) zerofill , id2 int(5));

如果实际插入的数据宽度小于字段设置的显示宽度N时,将自动在数字前填充0。
如果插入的数据宽度大于设置的显示宽度N时,并不会出现数据无法插入或数据被截断的情况。

  1. LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)
mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 
mysql> SELECT * FROM table LIMIT 95,-1; // 检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1

mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行. LIMIT n 等价于 LIMIT 0,n

注意: 对于有大数据量的mysql表来说,使用LIMIT分页存在很严重的性能问题。

SELECT * FROM `cdb_posts` ORDER BY pid LIMIT 1000000 , 30; //平均用时6.6s
SELECT * FROM `cdb_posts` WHERE pid >= (SELECT pid FROM  `cdb_posts` ORDER BY pid LIMIT 1000000 , 1) LIMIT 30;  //平均0.6s

因为要取出所有字段内容,第一种需要跨越大量数据块并取出,而第二种基本通过直接根据索引字段定位后,才取出相应内容,效率自然大大提升。对limit的优化,不是直接使用limit,而是首先获取到offset的id,然后直接使用limit size来获取数据。

相关文章

  • mysql一些tips

    varchar(50)中50的涵义最多存放50个字符. 所以当使用了中文的时候(UTF8)意味着可以插入m个中文...

  • 进入Docker容器内登录MYSQL不能使用中文

    TIPS: 在docker平台上启动一个mysql容器,进入容器之后登录mysql服务,在mysql-client...

  • Mysql tips

    utf-8与utf8mb4编码uft-8一个字符最多使用3个字节,utf8mb4可以使用4个字节。后者是前者的超集...

  • MySQL Tips

    由 mysql 推荐优化的数据表结构 mysq 根据实际数据表的数据情况,推荐优化的字段类型。当然机器是机器,不一...

  • MySQL Tips

    Create Table Load data from file to databaseRemember to s...

  • MySQL 调优 | OPTIMIZER_TRACE详解

    TIPS本文基于MySQL 8.0编写,理论支持MySQL 5.6及更高版本。 OPTIMIZER_TRACE是M...

  • MySQL 调优/优化的 101 个建议!

    原文:http://www.monitis.com/blog/101-tips-to-mysql-tuning-a...

  • MYSQL备忘

    中央气象台 2020-07-11 12:00 news MySQL Tips 中文乱码mysql> set nam...

  • mysql常用命令

    https://github.com/TIGERB/easy-tips/blob/master/mysql/sql...

  • Tip-Mysql Explain && Index Merge

    Tips-Mysql Explain && Index Merge OverView 最近工作场景下经常遇见sql...

网友评论

      本文标题:mysql一些tips

      本文链接:https://www.haomeiwen.com/subject/hedphqtx.html