mysql sql语句优化(MySQL数据库中like语句及相关优化器 tips)

建站教程 1年前 (2023) admin
58 0

MySQL数据库中like语句及相关优化器 tips

背景

ASP+mysql海量数据的分页优化

要把connection设置为使用本地游标定位,mysql的server端不支持recordset的recordcount属性。connstr="****

如何优化数据库

数据库优化一般考虑到内存,缓冲区,归档等性能方面

mysql表数据量太大,达到了1亿多条数据,除了分库分表之外,还有没有其他的解决

通常来说,Mysql表的数据量达到一两千万之后,操作起来开始有些吃力了,如果数据量达到上亿,估计系统是吃不消的。那么解决方案有哪些呢?我提几个思路:就用Mysql,不考虑迁移分库分表其实是比较好的方案,但是已经被题主否了,就不详细说了;表设计的优化:在设计表的时候,就要考虑性能问题了。例如字段尽量避免NULL,时间类型尽量使用TIMESTAMP,单表的字段不宜过多等等。索引的优化:索引不是越多越好,也不是所有的字段都适合建立索引,使用多列索引的时候,要注意SQL中的条件顺序等。SQL的优化:有的时候查询慢,可能是SQL写的烂。查询尽量用到索引,避免错误的写法导致索引失效,避免使用select *查询出来所有的列,拆分复杂的SQL语句,查询使用分页等等。分区:分区表是独立的逻辑表,底层由多个物理表组成,这些对用户来说是透明的;如果按照分区字段查询数据的话,就会在某一张分区表内查询,速度回比较快;分区字段的选择,需要根据你们实际业务来;比如你们这张表如果可以分100个分区的话,那么每张表实际只有100万的数据;使用分区表尽量避免全表扫描;建议考虑这种优化。抛弃Mysql,迁移数据库如果公司有钱的话,可以直接上商业数据库,Oracle、DB2什么的,一亿的数据还是可以搞的定的,当然会也比较贵。其他开源数据库,有可以支持千万级的产品,不过不建议使用,坑会比较多。云数据库,可以考虑把数据迁移到云上,比如阿里云,花一些钱,少操一些;不过如果是比较敏感的数据,放到云上,多少会不太放心;私有云?这个也贵。另外,如果不迁移Mysql的话,可以加以非关系型数据库进行辅助,例如一些数据放到Redis里面进行缓存,或者通过跑数的,把原始数据加工好放到Mongodb中提供查询,总之就是减少对数据库的访问。我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

相关文章