mysql字段数量和一些最大限制:

mysql最多可以多少个字段?

答:1024个字段

mysql每行的数据长度最大是多少?

答:8092字节

mysql每个库最多可以有多少个表?

答:20亿个表

mysql的查询速度会被字段数量影响吗?有没有简单点的优化方案呢?

答:肯定会影响的的,不然就不会有垂直分表这一说了.实际上垂直分表不仅仅是把字段按数量分开,还要按类型分开。

经常被显示的单独一个表.比如cms新闻系统的标题,摘要,所属分类,缩略图 。这些字段不管是在首页的列表还是分类页的列表。是显示频率很高的。并且这些字段的长度都是有一定的规律的。基本上不会太长,所以单独一个表。

定长和不定长的字段尽可能的分开。比如文章的正文。一般情况下在列表页是不会显示的。所以就没必要查询。可以放到副表中去。

新闻系统的主表中,尽可能的只使用定长字段。比如int 或 char   如果只使用定长字段 速度会有明显的提升。

这是为什么呢?

因为mysql的数据储存在硬盘中,查询的时候如果你告诉他了每个数据的长度,那么系统就会直接按照长度计算出数据的位置。所以快

如果其中有一列的数据长度是未知的。系统只能一点点的去找。所以慢。

当然mysql优化的方式还有很多。

比如:

MySQL 查询速度优化 与性能优化总结[转载]

mysql视图:view(优化查询速度必备)

mysql存储引擎

以上三篇也是跟优化有关的。有兴趣的也可以学习一下。如果要优化到极致,还是需要长期的实践和踩坑的过程中总结经验。

相关推荐

mysql最大行数限制

以下内容仅是猜测:一般习惯每建一个表 第一个字段都是id,且是自增的所以感觉可能会取决于自增id的数据类型一般自增id都用int 默认就是20多亿行 如果加了 unsigned 就是40多亿行 超过

mysql设置某字段唯一

1.建表时加上唯一性约束 CREATE TABLE `t_user` (`Id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(18) NOT

mysqlsqlite 在某字段后面追加符串

mysql在某个字段的最后面 追加一个字符串:$sql="update 表名 set 某字段=CONCAT(某字段,'要追加的字符串') where id =123"

mysql多个字段唯一索引

方法:unique index(字段一,字段二)例子:CREATE TABLE IF NOT EXISTS `ppserver`.`eventTable`( `userId` INT U

mysql修改字段名语句

最简单的语句ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;必须带上新的数据类型 修改后 注释也没了 如果要加注释和属性 可以紧跟后面加上去,例如: ALTER TABL

mysql查询字段忽略大小写

//问题:mysql的字符集改成严格区分大小写后,模糊搜索的时候不能忽略大小写。//解决方案:把数据库字段转为小写,like后的参数也都转为小写 SELECT *FROM 表名 LOWER(字段

mysql视图:view(优化查询速度必备)

用法:创建的视图create view 视图表名称 as 查询语句;例如:create view 视图表名称 as select * from class where id>2;select *

mysql 查询速度优化 性能优化总结[转载]

基础概念简述锁数据库通过锁机制来解决并发场景 — 共享锁(读锁)和排他锁(写锁)。读锁是不阻塞的,多个客户端可以在同一时刻读取同一个资源;写锁是排他的,并且会阻塞其他的读锁和写锁。简单提下乐观锁和悲观

zblog mysql数据库访问速度优化 100万篇文章秒开不卡 php版

zblog php数据库访问速度优化后,一百万篇文章秒开不卡.(实际上再加一百万也没问题,懒得测试了)最新编辑:升级后 最新测试 300万毫无压力! 并且已全面支持各种主题!详细请看 https://

sqlite查询列出某字段有重复

sqlite3 查询列出 指定字段有重复的行数据select * from 表名称 WHERE (字段名) IN (SELECT 字段名 FROM 表名称 GROUP BY 字段名 HAVING