我有一张450000排新闻的桌子.表模式是这样的:
CREATE TABLE IF NOT EXISTS `news` (
`id` int(11) NOT NULL auto_increment,
`cat_id` int(11) NOT NULL,
`title` tinytext NOT NULL,
`content` text NOT NULL,
`date` int(11) NOT NULL,
`readcount` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `cat_id` (`cat_id`),
KEY `cat_id_2` (`cat_id`,`id`),
KEY `cat_id_date` (`cat_id`,`date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=462679 ;
Run Code Online (Sandbox Code Playgroud)
当我运行如下的sql命令为类别页面的页面"x"获取一些新闻时,如果x超过100则需要超过15秒:
select * news where cat_id='4' order by id desc limit 150000,10;
Run Code Online (Sandbox Code Playgroud)
解释说明它使用"where"和索引"cat_id_2"
在写这个问题时,我还检查了一个更简单的SQL查询,这也花了近一分钟:
select * from haberler order by id desc limit 40000,10;
Run Code Online (Sandbox Code Playgroud)
如果sql如下所示,只需几毫秒:
select * …Run Code Online (Sandbox Code Playgroud) UITextField触摸默认类型时,我们的ios应用程序崩溃.有另一个uitextfield是numpad,它工作正常.
崩溃只发生在ios 5.0.1和ios 4.x上运行正常.
它UITextField是使用界面构建器创建的,我没有为它添加任何委托.
该项目是在4.0.2上创建的,我也在4.2上测试了同一个项目.
如果我创建一个新项目并且只是放入UITextField其中就没有问题.
不知何故,我的项目中的某些东西导致UITextField崩溃,我不知道如何调试它.
崩溃日志如下:
(gdb) bt
#0 0x33fa2fdc in CFRetain ()
#1 0x37991db6 in ___init_block_invoke_2 ()
#2 0x36c8e7ea in _dispatch_barrier_sync_f_invoke ()
#3 0x36c8e65a in dispatch_barrier_sync_f$VARIANT$up ()
#4 0x36c8e28e in dispatch_sync_f$VARIANT$up ()
#5 0x36c8e910 in dispatch_sync$VARIANT$up ()
#6 0x36c90576 in dispatch_once_f$VARIANT$up ()
#7 0x37992706 in CPLoggingAddCustomLogFile ()
#8 0x306ee658 in __MCLoggingInitialize_block_invoke_1 ()
#9 0x36c90576 in dispatch_once_f$VARIANT$up ()
#10 0x306ee6a4 in MCLoggingInitialize ()
#11 0x306ef060 in -[MCProfileConnection _init] ()
#12 …Run Code Online (Sandbox Code Playgroud)